[ 
  { "name": "session",
"description": "A session",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "this_host",
    "description": "Currently connected host",
    "type": "host ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Currently connected host" } ] }, 
  { "name": "this_user",
    "description": "Currently connected user",
    "type": "user ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Currently connected user" } ] }, 
  { "name": "last_active",
    "description": "Timestamp for last time session was active",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Timestamp for last time session was active" } ] }, 
  { "name": "pool",
    "description": "True if this session relates to a intra-pool login, false otherwise",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "True if this session relates to a intra-pool login, false otherwise" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "default": "{}" }, 
  { "name": "is_local_superuser",
    "description": "true iff this session was created using local superuser credentials",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "true iff this session was created using local superuser credentials" } ],
    "default": "false" }, 
  { "name": "subject",
    "description": "references the subject instance that created the session. If a session instance has is_local_superuser set, then the value of this field is undefined.",
    "type": "subject ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "references the subject instance that created the session. If a session instance has is_local_superuser set, then the value of this field is undefined." } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "validation_time",
    "description": "time when session was last validated",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "time when session was last validated" } ],
    "default": "19700101T00:00:00Z" }, 
  { "name": "auth_user_sid",
    "description": "the subject identifier of the user that was externally authenticated. If a session instance has is_local_superuser set, then the value of this field is undefined.",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "the subject identifier of the user that was externally authenticated. If a session instance has is_local_superuser set, then the value of this field is undefined." } ],
    "default": "\"\"" }, 
  { "name": "auth_user_name",
    "description": "the subject name of the user that was externally authenticated. If a session instance has is_local_superuser set, then the value of this field is undefined.",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "the subject name of the user that was externally authenticated. If a session instance has is_local_superuser set, then the value of this field is undefined." } ],
    "default": "\"\"" }, 
  { "name": "rbac_permissions",
    "description": "list with all RBAC permissions for this session",
    "type": "string set",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "list with all RBAC permissions for this session" } ],
    "default": "{}" }, 
  { "name": "tasks",
    "description": "list of tasks created using the current session",
    "type": "task ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "list of tasks created using the current session" } ] }, 
  { "name": "parent",
    "description": "references the parent session that created this session",
    "type": "session ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "references the parent session that created this session" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "originator",
    "description": "a key string provided by a API user to distinguish itself from other users sharing the same login name",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "clearwater",
        "description": "a key string provided by a API user to distinguish itself from other users sharing the same login name" } ],
    "default": "\"\"" } ],
"messages": [ 
  { "name": "logout_subject_identifier",
    "description": "Log out all sessions associated to a user subject-identifier, except the session associated with the context calling this function",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "subject_identifier",
        "doc": "User subject-identifier of the sessions to be destroyed" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Log out all sessions associated to a user subject-identifier, except the session associated with the context calling this function" } ],
    "implicit": false }, 
  { "name": "get_all_subject_identifiers",
    "description": "Return a list of all the user subject-identifiers of all existing sessions",
    "result": [ "string set", "The list of user subject-identifiers of all existing sessions" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Return a list of all the user subject-identifiers of all existing sessions" } ],
    "implicit": false }, 
  { "name": "local_logout",
    "description": "Log out of local session.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Log out of local session." } ],
    "implicit": false }, 
  { "name": "create_from_db_file",
    "description": "",
    "result": [ "session ref", "ID of newly created session" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "filename",
        "doc": "Database dump filename." } ],
    "errors": [  ],
    "roles": [  ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "implicit": false }, 
  { "name": "slave_local_login_with_password",
    "description": "Authenticate locally against a slave in emergency mode. Note the resulting sessions are only good for use on this host.",
    "result": [ "session ref", "ID of newly created session" ],
    "params": [ 
      { "type": "string",
        "name": "uname",
        "doc": "Username for login." }, 
      { "type": "string",
        "name": "pwd",
        "doc": "Password for login." } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Authenticate locally against a slave in emergency mode. Note the resulting sessions are only good for use on this host." } ],
    "implicit": false }, 
  { "name": "change_password",
    "description": "Change the account password; if your session is authenticated with root priviledges then the old_pwd is validated and the new_pwd is set regardless",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "old_pwd",
        "doc": "Old password for account" }, 
      { "type": "string",
        "name": "new_pwd",
        "doc": "New password for account" } ],
    "errors": [  ],
    "roles": [  ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Change the account password; if your session is authenticated with root priviledges then the old_pwd is validated and the new_pwd is set regardless" } ],
    "implicit": false }, 
  { "name": "logout",
    "description": "Log out of a session",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Log out of a session" } ],
    "implicit": false }, 
  { "name": "login_with_password",
    "description": "Attempt to authenticate the user, returning a session reference if successful",
    "result": [ "session ref", "reference of newly created session" ],
    "params": [ 
      { "type": "string",
        "name": "uname",
        "doc": "Username for login." }, 
      { "type": "string",
        "name": "pwd",
        "doc": "Password for login." }, 
      { "type": "string",
        "name": "version",
        "doc": "Client API version." }, 
      { "type": "string",
        "name": "originator",
        "doc": "Key string for distinguishing different API users sharing the same login name." } ],
    "errors": [ 
      { "name": "SESSION_AUTHENTICATION_FAILED",
        "doc": "The credentials given by the user are incorrect, so access has been denied, and you have not been issued a session handle." }, 
      { "name": "HOST_IS_SLAVE",
        "doc": "You cannot make regular API calls directly on a slave. Please pass API calls via the master host." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Attempt to authenticate the user, returning a session reference if successful" } ],
    "implicit": false }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given session.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given session.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given session.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_originator",
    "description": "Get the originator field of the given session.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "clearwater",
        "description": "a key string provided by a API user to distinguish itself from other users sharing the same login name" } ],
    "implicit": true }, 
  { "name": "get_parent",
    "description": "Get the parent field of the given session.",
    "result": [ "session ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "references the parent session that created this session" } ],
    "implicit": true }, 
  { "name": "get_tasks",
    "description": "Get the tasks field of the given session.",
    "result": [ "task ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "list of tasks created using the current session" } ],
    "implicit": true }, 
  { "name": "get_rbac_permissions",
    "description": "Get the rbac_permissions field of the given session.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "list with all RBAC permissions for this session" } ],
    "implicit": true }, 
  { "name": "get_auth_user_name",
    "description": "Get the auth_user_name field of the given session.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "the subject name of the user that was externally authenticated. If a session instance has is_local_superuser set, then the value of this field is undefined." } ],
    "implicit": true }, 
  { "name": "get_auth_user_sid",
    "description": "Get the auth_user_sid field of the given session.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "the subject identifier of the user that was externally authenticated. If a session instance has is_local_superuser set, then the value of this field is undefined." } ],
    "implicit": true }, 
  { "name": "get_validation_time",
    "description": "Get the validation_time field of the given session.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "time when session was last validated" } ],
    "implicit": true }, 
  { "name": "get_subject",
    "description": "Get the subject field of the given session.",
    "result": [ "subject ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "references the subject instance that created the session. If a session instance has is_local_superuser set, then the value of this field is undefined." } ],
    "implicit": true }, 
  { "name": "get_is_local_superuser",
    "description": "Get the is_local_superuser field of the given session.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "true iff this session was created using local superuser credentials" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given session.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_pool",
    "description": "Get the pool field of the given session.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "True if this session relates to a intra-pool login, false otherwise" } ],
    "implicit": true }, 
  { "name": "get_last_active",
    "description": "Get the last_active field of the given session.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Timestamp for last time session was active" } ],
    "implicit": true }, 
  { "name": "get_this_user",
    "description": "Get the this_user field of the given session.",
    "result": [ "user ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Currently connected user" } ],
    "implicit": true }, 
  { "name": "get_this_host",
    "description": "Get the this_host field of the given session.",
    "result": [ "host ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Currently connected host" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given session.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the session instance with the specified UUID.",
    "result": [ "session ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A session" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given session.",
    "result": [ "session record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "session ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A session" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "A session" } ],
"tag": "" }, 
{ "name": "auth",
"description": "Management of remote authentication services",
"fields": [  ],
"messages": [ 
  { "name": "get_group_membership",
    "description": "This calls queries the external directory service to obtain the transitively-closed set of groups that the the subject_identifier is member of.",
    "result": [ "string set", "set of subject_identifiers that provides the group membership of subject_identifier passed as argument, it contains, recursively, all groups a subject_identifier is member of." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "subject_identifier",
        "doc": "A string containing the subject_identifier, unique in the external directory service" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "This calls queries the external directory service to obtain the transitively-closed set of groups that the the subject_identifier is member of." } ],
    "implicit": false }, 
  { "name": "get_subject_information_from_identifier",
    "description": "This call queries the external directory service to obtain the user information (e.g. username, organization etc) from the specified subject_identifier",
    "result": [ "(string -> string) map", "key-value pairs containing at least a key called subject_name" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "subject_identifier",
        "doc": "A string containing the subject_identifier, unique in the external directory service" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "This call queries the external directory service to obtain the user information (e.g. username, organization etc) from the specified subject_identifier" } ],
    "implicit": false }, 
  { "name": "get_subject_identifier",
    "description": "This call queries the external directory service to obtain the subject_identifier as a string from the human-readable subject_name",
    "result": [ "string", "the subject_identifier obtained from the external directory service" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "subject_name",
        "doc": "The human-readable subject_name, such as a username or a groupname" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "This call queries the external directory service to obtain the subject_identifier as a string from the human-readable subject_name" } ],
    "implicit": false } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "george",
    "description": "Management of remote authentication services" } ],
"tag": "" }, { "name": "subject",
"description": "A user or group that can log in xapi",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "subject_identifier",
    "description": "the subject identifier, unique in the external directory service",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "the subject identifier, unique in the external directory service" } ],
    "default": "\"\"" }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "additional configuration" } ],
    "default": "{}" }, 
  { "name": "roles",
    "description": "the roles associated with this subject",
    "type": "role ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "the roles associated with this subject" } ],
    "default": "{OpaqueRef:0165f154-ba3e-034e-6b27-5d271af109ba}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of subject references to subject records for all subjects known to the system.",
    "result": [ "(subject ref -> subject record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "A user or group that can log in xapi" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the subjects known to the system.",
    "result": [ "subject ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "A user or group that can log in xapi" } ],
    "implicit": true }, 
  { "name": "get_permissions_name_label",
    "description": "This call returns a list of permission names given a subject",
    "result": [ "string set", "a list of permission names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "subject ref",
        "name": "self",
        "doc": "The subject whose permissions will be retrieved" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "This call returns a list of permission names given a subject" } ],
    "implicit": false }, 
  { "name": "remove_from_roles",
    "description": "This call removes a role from a subject",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "subject ref",
        "name": "self",
        "doc": "The subject from whom we want to remove the role" }, 
      { "type": "role ref",
        "name": "role",
        "doc": "The unique role reference in the subject's roles field" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "This call removes a role from a subject" } ],
    "implicit": false }, 
  { "name": "add_to_roles",
    "description": "This call adds a new role to a subject",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "subject ref",
        "name": "self",
        "doc": "The subject who we want to add the role to" }, 
      { "type": "role ref",
        "name": "role",
        "doc": "The unique role reference" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "This call adds a new role to a subject" } ],
    "implicit": false }, 
  { "name": "get_roles",
    "description": "Get the roles field of the given subject.",
    "result": [ "role ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "subject ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "the roles associated with this subject" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given subject.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "subject ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_subject_identifier",
    "description": "Get the subject_identifier field of the given subject.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "subject ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "the subject identifier, unique in the external directory service" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given subject.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "subject ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy the specified subject instance.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "subject ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "A user or group that can log in xapi" } ],
    "implicit": true }, 
  { "name": "create",
    "description": "Create a new subject instance, and return its handle.\nThe constructor args are: subject_identifier, other_config (* = non-optional).",
    "result": [ "subject ref", "reference to the newly created object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "subject record",
        "name": "args",
        "doc": "All constructor arguments" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "A user or group that can log in xapi" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the subject instance with the specified UUID.",
    "result": [ "subject ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "A user or group that can log in xapi" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given subject.",
    "result": [ "subject record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "subject ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "A user or group that can log in xapi" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "george",
    "description": "A user or group that can log in xapi" } ],
"tag": "" }, { "name": "role",
"description": "A set of permissions associated with a subject",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "name_label",
    "description": "a short user-friendly name for the role",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "a short user-friendly name for the role" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "what this role is for",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "what this role is for" } ],
    "default": "\"\"" }, 
  { "name": "subroles",
    "description": "a list of pointers to other roles or permissions",
    "type": "role ref set",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "a list of pointers to other roles or permissions" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of role references to role records for all roles known to the system.",
    "result": [ "(role ref -> role record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "A set of permissions associated with a subject" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the roles known to the system.",
    "result": [ "role ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "A set of permissions associated with a subject" } ],
    "implicit": true }, 
  { "name": "get_by_permission_name_label",
    "description": "This call returns a list of roles given a permission name",
    "result": [ "role ref set", "a list of references to roles" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "The short friendly name of the role" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "This call returns a list of roles given a permission name" } ],
    "implicit": false }, 
  { "name": "get_by_permission",
    "description": "This call returns a list of roles given a permission",
    "result": [ "role ref set", "a list of references to roles" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "role ref",
        "name": "permission",
        "doc": "a reference to a permission" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "This call returns a list of roles given a permission" } ],
    "implicit": false }, 
  { "name": "get_permissions_name_label",
    "description": "This call returns a list of permission names given a role",
    "result": [ "string set", "a list of permission names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "role ref",
        "name": "self",
        "doc": "a reference to a role" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "This call returns a list of permission names given a role" } ],
    "implicit": false }, 
  { "name": "get_permissions",
    "description": "This call returns a list of permissions given a role",
    "result": [ "role ref set", "a list of permissions" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "role ref",
        "name": "self",
        "doc": "a reference to a role" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "This call returns a list of permissions given a role" } ],
    "implicit": false }, 
  { "name": "get_subroles",
    "description": "Get the subroles field of the given role.",
    "result": [ "role ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "role ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "a list of pointers to other roles or permissions" } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given role.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "role ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "what this role is for" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given role.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "role ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "a short user-friendly name for the role" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given role.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "role ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the role instances with the given label.",
    "result": [ "role ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "A set of permissions associated with a subject" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the role instance with the specified UUID.",
    "result": [ "role ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "A set of permissions associated with a subject" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given role.",
    "result": [ "role record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "role ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "A set of permissions associated with a subject" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "midnight-ride",
    "description": "A set of permissions associated with a subject" } ],
"tag": "" }, { "name": "task",
"description": "A long-running asynchronous task",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "default": "\"\"" }, 
  { "name": "allowed_operations",
    "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client.",
    "type": "enum task_allowed_operations set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "default": "{}" }, 
  { "name": "current_operations",
    "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task.",
    "type": "(string -> enum task_allowed_operations) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "default": "{}" }, 
  { "name": "created",
    "description": "Time task was created",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time task was created" } ] }, 
  { "name": "finished",
    "description": "Time task finished (i.e. succeeded or failed). If task-status is pending, then the value of this field has no meaning",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time task finished (i.e. succeeded or failed). If task-status is pending, then the value of this field has no meaning" } ] }, 
  { "name": "status",
    "description": "current status of the task",
    "type": "enum task_status_type",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "current status of the task" } ] }, 
  { "name": "resident_on",
    "description": "the host on which the task is running",
    "type": "host ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the host on which the task is running" } ] }, 
  { "name": "progress",
    "description": "This field contains the estimated fraction of the task which is complete. This field should not be used to determine whether the task is complete - for this the status field of the task should be used.",
    "type": "float",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "This field contains the estimated fraction of the task which is complete. This field should not be used to determine whether the task is complete - for this the status field of the task should be used." } ] }, 
  { "name": "type",
    "description": "if the task has completed successfully, this field contains the type of the encoded result (i.e. name of the class whose reference is in the result field). Undefined otherwise.",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "if the task has completed successfully, this field contains the type of the encoded result (i.e. name of the class whose reference is in the result field). Undefined otherwise." } ] }, 
  { "name": "result",
    "description": "if the task has completed successfully, this field contains the result value (either Void or an object reference). Undefined otherwise.",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "if the task has completed successfully, this field contains the result value (either Void or an object reference). Undefined otherwise." } ] }, 
  { "name": "error_info",
    "description": "if the task has failed, this field contains the set of associated error strings. Undefined otherwise.",
    "type": "string set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "if the task has failed, this field contains the set of associated error strings. Undefined otherwise." } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "default": "{}" }, 
  { "name": "subtask_of",
    "description": "Ref pointing to the task this is a substask of.",
    "type": "task ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Ref pointing to the task this is a substask of." } ],
    "default": "Null" }, 
  { "name": "subtasks",
    "description": "List pointing to all the substasks.",
    "type": "task ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "List pointing to all the substasks." } ] }, 
  { "name": "backtrace",
    "description": "Function call trace for debugging.",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Function call trace for debugging." } ],
    "default": "\"()\"" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of task references to task records for all tasks known to the system.",
    "result": [ "(task ref -> task record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A long-running asynchronous task" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the tasks known to the system.",
    "result": [ "task ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A long-running asynchronous task" } ],
    "implicit": true }, 
  { "name": "set_status",
    "description": "Set the task status",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "Reference to the task object" }, 
      { "type": "enum task_status_type",
        "name": "value",
        "doc": "task status value to be set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "Set the task status" } ],
    "implicit": false }, 
  { "name": "cancel",
    "description": "Request that a task be cancelled. Note that a task may fail to be cancelled and may complete or fail normally and note that, even when a task does cancel, it might take an arbitrary amount of time.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "task",
        "doc": "The task" } ],
    "errors": [ 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Request that a task be cancelled. Note that a task may fail to be cancelled and may complete or fail normally and note that, even when a task does cancel, it might take an arbitrary amount of time." } ],
    "implicit": false }, 
  { "name": "destroy",
    "description": "Destroy the task object",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "Reference to the task object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Destroy the task object" } ],
    "implicit": false }, 
  { "name": "create",
    "description": "Create a new task object which must be manually destroyed.",
    "result": [ "task ref", "The reference of the created task object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "short label for the new task" }, 
      { "type": "string",
        "name": "description",
        "doc": "longer description for the new task" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Create a new task object which must be manually destroyed." } ],
    "implicit": false }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given task.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given task.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given task.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_backtrace",
    "description": "Get the backtrace field of the given task.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Function call trace for debugging." } ],
    "implicit": true }, 
  { "name": "get_subtasks",
    "description": "Get the subtasks field of the given task.",
    "result": [ "task ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "List pointing to all the substasks." } ],
    "implicit": true }, 
  { "name": "get_subtask_of",
    "description": "Get the subtask_of field of the given task.",
    "result": [ "task ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Ref pointing to the task this is a substask of." } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given task.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_error_info",
    "description": "Get the error_info field of the given task.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "if the task has failed, this field contains the set of associated error strings. Undefined otherwise." } ],
    "implicit": true }, 
  { "name": "get_result",
    "description": "Get the result field of the given task.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "if the task has completed successfully, this field contains the result value (either Void or an object reference). Undefined otherwise." } ],
    "implicit": true }, 
  { "name": "get_type",
    "description": "Get the type field of the given task.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "if the task has completed successfully, this field contains the type of the encoded result (i.e. name of the class whose reference is in the result field). Undefined otherwise." } ],
    "implicit": true }, 
  { "name": "get_progress",
    "description": "Get the progress field of the given task.",
    "result": [ "float", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "This field contains the estimated fraction of the task which is complete. This field should not be used to determine whether the task is complete - for this the status field of the task should be used." } ],
    "implicit": true }, 
  { "name": "get_resident_on",
    "description": "Get the resident_on field of the given task.",
    "result": [ "host ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the host on which the task is running" } ],
    "implicit": true }, 
  { "name": "get_status",
    "description": "Get the status field of the given task.",
    "result": [ "enum task_status_type", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "current status of the task" } ],
    "implicit": true }, 
  { "name": "get_finished",
    "description": "Get the finished field of the given task.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time task finished (i.e. succeeded or failed). If task-status is pending, then the value of this field has no meaning" } ],
    "implicit": true }, 
  { "name": "get_created",
    "description": "Get the created field of the given task.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time task was created" } ],
    "implicit": true }, 
  { "name": "get_current_operations",
    "description": "Get the current_operations field of the given task.",
    "result": [ "(string -> enum task_allowed_operations) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "implicit": true }, 
  { "name": "get_allowed_operations",
    "description": "Get the allowed_operations field of the given task.",
    "result": [ "enum task_allowed_operations set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given task.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given task.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given task.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the task instances with the given label.",
    "result": [ "task ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A long-running asynchronous task" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the task instance with the specified UUID.",
    "result": [ "task ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A long-running asynchronous task" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given task.",
    "result": [ "task record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A long-running asynchronous task" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "task_allowed_operations",
    "values": [ 
      { "name": "cancel",
        "doc": "refers to the operation \"cancel\"" }, 
      { "name": "destroy",
        "doc": "refers to the operation \"destroy\"" } ] }, 
  { "name": "task_status_type",
    "values": [ 
      { "name": "pending",
        "doc": "task is in progress" }, 
      { "name": "success",
        "doc": "task was completed successfully" }, 
      { "name": "failure",
        "doc": "task has failed" }, 
      { "name": "cancelling",
        "doc": "task is being cancelled" }, 
      { "name": "cancelled",
        "doc": "task has been cancelled" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "A long-running asynchronous task" } ],
"tag": "" }, { "name": "event",
"description": "Asynchronous event registration and handling",
"fields": [ 
  { "name": "snapshot",
    "description": "The record of the database object that was added, changed or deleted",
    "type": "&lt;object record&gt;",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ] }, 
  { "name": "id",
    "description": "An ID, monotonically increasing, and local to the current session",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "An ID, monotonically increasing, and local to the current session" } ] }, 
  { "name": "timestamp",
    "description": "The time at which the event occurred",
    "type": "datetime",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The time at which the event occurred" }, 
      { "transition": "deprecated",
        "release": "boston",
        "description": "" } ] }, 
  { "name": "class",
    "description": "The name of the class of the object that changed",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The name of the class of the object that changed" } ] }, 
  { "name": "operation",
    "description": "The operation that was performed",
    "type": "enum event_operation",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The operation that was performed" } ] }, 
  { "name": "ref",
    "description": "A reference to the object that changed",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A reference to the object that changed" } ] }, 
  { "name": "obj_uuid",
    "description": "The uuid of the object that changed",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The uuid of the object that changed" }, 
      { "transition": "deprecated",
        "release": "boston",
        "description": "" } ] } ],
"messages": [ 
  { "name": "inject",
    "description": "Injects an artificial event on the given object and returns the corresponding ID in the form of a token, which can be used as a point of reference for database events. For example, to check whether an object has reached the right state before attempting an operation, one can inject an artificial event on the object and wait until the token returned by consecutive event.from calls is lexicographically greater than the one returned by event.inject.",
    "result": [ "string", "the event ID in the form of a token" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "class",
        "doc": "class of the object" }, 
      { "type": "string",
        "name": "ref",
        "doc": "A reference to the object that will be changed." } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Injects an artificial event on the given object and returns the corresponding ID in the form of a token, which can be used as a point of reference for database events. For example, to check whether an object has reached the right state before attempting an operation, one can inject an artificial event on the object and wait until the token returned by consecutive event.from calls is lexicographically greater than the one returned by event.inject." } ],
    "implicit": false }, 
  { "name": "get_current_id",
    "description": "Return the ID of the next event to be generated by the system",
    "result": [ "int", "the event ID" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Return the ID of the next event to be generated by the system" } ],
    "implicit": false }, 
  { "name": "from",
    "description": "Blocking call which returns a new token and a (possibly empty) batch of events. The returned token can be used in subsequent calls to this function.",
    "result": [ "an event batch", "a structure consisting of a token ('token'), a map of valid references per object type ('valid_ref_counts'), and a set of event records ('events')." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string set",
        "name": "classes",
        "doc": "register for events for the indicated classes" }, 
      { "type": "string",
        "name": "token",
        "doc": "A token representing the point from which to generate database events. The empty string represents the beginning." }, 
      { "type": "float",
        "name": "timeout",
        "doc": "Return after this many seconds if no events match" } ],
    "errors": [ 
      { "name": "SESSION_NOT_REGISTERED",
        "doc": "This session is not registered to receive events. You must call event.register before event.next. The session handle you are using is echoed." }, 
      { "name": "EVENTS_LOST",
        "doc": "Some events have been lost from the queue and cannot be retrieved." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Blocking call which returns a new token and a (possibly empty) batch of events. The returned token can be used in subsequent calls to this function." } ],
    "implicit": false }, 
  { "name": "next",
    "description": "Blocking call which returns a (possibly empty) batch of events. This method is only recommended for legacy use. New development should use event.from which supercedes this method.",
    "result": [ "event record set", "A set of events" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [ 
      { "name": "SESSION_NOT_REGISTERED",
        "doc": "This session is not registered to receive events. You must call event.register before event.next. The session handle you are using is echoed." }, 
      { "name": "EVENTS_LOST",
        "doc": "Some events have been lost from the queue and cannot be retrieved." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Blocking call which returns a (possibly empty) batch of events. This method is only recommended for legacy use. New development should use event.from which supercedes this method." }, 
      { "transition": "deprecated",
        "release": "boston",
        "description": "" } ],
    "implicit": false }, 
  { "name": "unregister",
    "description": "Removes this session's registration with the event system for a set of given classes. This method is only recommended for legacy use in conjunction with event.next.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string set",
        "name": "classes",
        "doc": "the classes for which the session's registration with the event system will be removed" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Removes this session's registration with the event system for a set of given classes. This method is only recommended for legacy use in conjunction with event.next." }, 
      { "transition": "deprecated",
        "release": "boston",
        "description": "" } ],
    "implicit": false }, 
  { "name": "register",
    "description": "Registers this session with the event system for a set of given classes. This method is only recommended for legacy use in conjunction with event.next.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string set",
        "name": "classes",
        "doc": "the classes for which the session will register with the event system; specifying * as the desired class will register for all classes" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Registers this session with the event system for a set of given classes. This method is only recommended for legacy use in conjunction with event.next." }, 
      { "transition": "deprecated",
        "release": "boston",
        "description": "" } ],
    "implicit": false } ],
"enums": [ 
  { "name": "event_operation",
    "values": [ 
      { "name": "add",
        "doc": "An object has been created" }, 
      { "name": "del",
        "doc": "An object has been deleted" }, 
      { "name": "mod",
        "doc": "An object has been modified" } ] } ],
"lifecycle": [  ],
"tag": "" }, { "name": "pool",
"description": "Pool-wide information",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "name_label",
    "description": "Short name",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Short name" } ] }, 
  { "name": "name_description",
    "description": "Description",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Description" } ] }, 
  { "name": "master",
    "description": "The host that is pool master",
    "type": "host ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The host that is pool master" } ] }, 
  { "name": "default_SR",
    "description": "Default SR for VDIs",
    "type": "SR ref",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Default SR for VDIs" } ] }, 
  { "name": "suspend_image_SR",
    "description": "The SR in which VDIs for suspend images are created",
    "type": "SR ref",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The SR in which VDIs for suspend images are created" } ] }, 
  { "name": "crash_dump_SR",
    "description": "The SR in which VDIs for crash dumps are created",
    "type": "SR ref",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The SR in which VDIs for crash dumps are created" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ] }, 
  { "name": "ha_enabled",
    "description": "true if HA is enabled on the pool, false otherwise",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "true if HA is enabled on the pool, false otherwise" } ],
    "default": "false" }, 
  { "name": "ha_configuration",
    "description": "The current HA configuration",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "The current HA configuration" } ],
    "default": "{}" }, 
  { "name": "ha_statefiles",
    "description": "HA statefile VDIs in use",
    "type": "string set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "HA statefile VDIs in use" } ],
    "default": "{}" }, 
  { "name": "ha_host_failures_to_tolerate",
    "description": "Number of host failures to tolerate before the Pool is declared to be overcommitted",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Number of host failures to tolerate before the Pool is declared to be overcommitted" } ],
    "default": "0" }, 
  { "name": "ha_plan_exists_for",
    "description": "Number of future host failures we have managed to find a plan for. Once this reaches zero any future host failures will cause the failure of protected VMs.",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Number of future host failures we have managed to find a plan for. Once this reaches zero any future host failures will cause the failure of protected VMs." } ],
    "default": "0" }, 
  { "name": "ha_allow_overcommit",
    "description": "If set to false then operations which would cause the Pool to become overcommitted will be blocked.",
    "type": "bool",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "If set to false then operations which would cause the Pool to become overcommitted will be blocked." } ],
    "default": "false" }, 
  { "name": "ha_overcommitted",
    "description": "True if the Pool is considered to be overcommitted i.e. if there exist insufficient physical resources to tolerate the configured number of host failures",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "True if the Pool is considered to be overcommitted i.e. if there exist insufficient physical resources to tolerate the configured number of host failures" } ],
    "default": "false" }, 
  { "name": "blobs",
    "description": "Binary blobs associated with this pool",
    "type": "(string -> blob ref) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Binary blobs associated with this pool" } ],
    "default": "{}" }, 
  { "name": "tags",
    "description": "user-specified tags for categorization purposes",
    "type": "string set",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "default": "{}" }, 
  { "name": "gui_config",
    "description": "gui-specific configuration for pool",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "gui-specific configuration for pool" } ],
    "default": "{}" }, 
  { "name": "health_check_config",
    "description": "Configuration for the automatic health check feature",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Configuration for the automatic health check feature" } ],
    "default": "{}" }, 
  { "name": "wlb_url",
    "description": "Url for the configured workload balancing host",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Url for the configured workload balancing host" } ],
    "default": "\"\"" }, 
  { "name": "wlb_username",
    "description": "Username for accessing the workload balancing host",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Username for accessing the workload balancing host" } ],
    "default": "\"\"" }, 
  { "name": "wlb_enabled",
    "description": "true if workload balancing is enabled on the pool, false otherwise",
    "type": "bool",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "true if workload balancing is enabled on the pool, false otherwise" } ],
    "default": "false" }, 
  { "name": "wlb_verify_cert",
    "description": "true if communication with the WLB server should enforce SSL certificate verification.",
    "type": "bool",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "true if communication with the WLB server should enforce SSL certificate verification." } ],
    "default": "false" }, 
  { "name": "redo_log_enabled",
    "description": "true a redo-log is to be used other than when HA is enabled, false otherwise",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "true a redo-log is to be used other than when HA is enabled, false otherwise" } ],
    "default": "false" }, 
  { "name": "redo_log_vdi",
    "description": "indicates the VDI to use for the redo-log other than when HA is enabled",
    "type": "VDI ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "indicates the VDI to use for the redo-log other than when HA is enabled" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "vswitch_controller",
    "description": "address of the vswitch controller",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "the IP address of the vswitch controller." }, 
      { "transition": "deprecated",
        "release": "falcon",
        "description": "Deprecated: set the IP address of the vswitch controller in SDN_controller instead." } ],
    "default": "\"\"" }, 
  { "name": "restrictions",
    "description": "Pool-wide restrictions currently in effect",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Pool-wide restrictions currently in effect" } ],
    "default": "{}" }, 
  { "name": "metadata_VDIs",
    "description": "The set of currently known metadata VDIs for this pool",
    "type": "VDI ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "The set of currently known metadata VDIs for this pool" } ] }, 
  { "name": "ha_cluster_stack",
    "description": "The HA cluster stack that is currently in use. Only valid when HA is enabled.",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "The HA cluster stack that is currently in use. Only valid when HA is enabled." } ],
    "default": "\"\"" }, 
  { "name": "allowed_operations",
    "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client.",
    "type": "enum pool_allowed_operations set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "default": "{}" }, 
  { "name": "current_operations",
    "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task.",
    "type": "(string -> enum pool_allowed_operations) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "default": "{}" }, 
  { "name": "guest_agent_config",
    "description": "Pool-wide guest agent configuration information",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Pool-wide guest agent configuration information" } ],
    "default": "{}" }, 
  { "name": "cpu_info",
    "description": "Details about the physical CPUs on the pool",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Details about the physical CPUs on the pool" } ],
    "default": "{}" }, 
  { "name": "policy_no_vendor_device",
    "description": "The pool-wide policy for clients on whether to use the vendor device or not on newly created VMs. This field will also be consulted if the 'has_vendor_device' field is not specified in the VM.create call.",
    "type": "bool",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "The pool-wide policy for clients on whether to use the vendor device or not on newly created VMs. This field will also be consulted if the 'has_vendor_device' field is not specified in the VM.create call." } ],
    "default": "false" }, 
  { "name": "live_patching_disabled",
    "description": "The pool-wide flag to show if the live patching feauture is disabled or not.",
    "type": "bool",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "The pool-wide flag to show if the live patching feauture is disabled or not." } ],
    "default": "false" }, 
  { "name": "igmp_snooping_enabled",
    "description": "true if IGMP snooping is enabled in the pool, false otherwise.",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "true if IGMP snooping is enabled in the pool, false otherwise." } ],
    "default": "false" }, 
  { "name": "uefi_certificates",
    "description": "The UEFI certificates allowing Secure Boot",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "plymouth",
        "description": "The UEFI certificates allowing Secure Boot" } ],
    "default": "\"\"" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of pool references to pool records for all pools known to the system.",
    "result": [ "(pool ref -> pool record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Pool-wide information" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the pools known to the system.",
    "result": [ "pool ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Pool-wide information" } ],
    "implicit": true }, 
  { "name": "remove_from_guest_agent_config",
    "description": "Remove a key-value pair from the pool-wide guest agent configuration",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "The pool" }, 
      { "type": "string",
        "name": "key",
        "doc": "The key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Remove a key-value pair from the pool-wide guest agent configuration" } ],
    "implicit": false }, 
  { "name": "add_to_guest_agent_config",
    "description": "Add a key-value pair to the pool-wide guest agent configuration",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "The pool" }, 
      { "type": "string",
        "name": "key",
        "doc": "The key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "The value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Add a key-value pair to the pool-wide guest agent configuration" } ],
    "implicit": false }, 
  { "name": "has_extension",
    "description": "Return true if the extension is available on the pool",
    "result": [ "bool", "True if the extension exists, false otherwise" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "The pool" }, 
      { "type": "string",
        "name": "name",
        "doc": "The name of the API call" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Return true if the extension is available on the pool" } ],
    "implicit": false }, 
  { "name": "set_igmp_snooping_enabled",
    "description": "Enable or disable IGMP Snooping on the pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "The pool" }, 
      { "type": "bool",
        "name": "value",
        "doc": "Enable or disable IGMP Snooping on the pool" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "Enable or disable IGMP Snooping on the pool." } ],
    "implicit": false }, 
  { "name": "disable_ssl_legacy",
    "description": "Sets ssl_legacy true on each host, pool-master last. See Host.ssl_legacy and Host.set_ssl_legacy.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "(ignored)" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "implicit": false }, 
  { "name": "enable_ssl_legacy",
    "description": "Sets ssl_legacy true on each host, pool-master last. See Host.ssl_legacy and Host.set_ssl_legacy.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "(ignored)" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "implicit": false }, 
  { "name": "apply_edition",
    "description": "Apply an edition to all hosts in the pool",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "Reference to the pool" }, 
      { "type": "string",
        "name": "edition",
        "doc": "The requested edition" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "clearwater",
        "description": "Apply an edition to all hosts in the pool" } ],
    "implicit": false }, 
  { "name": "get_license_state",
    "description": "This call returns the license state for the pool",
    "result": [ "(string -> string) map", "The pool's license state" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "Reference to the pool" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "clearwater",
        "description": "This call returns the license state for the pool" } ],
    "implicit": false }, 
  { "name": "disable_local_storage_caching",
    "description": "This call disables pool-wide local storage caching",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "Reference to the pool" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "This call disables pool-wide local storage caching" } ],
    "implicit": false }, 
  { "name": "enable_local_storage_caching",
    "description": "This call attempts to enable pool-wide local storage caching",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "Reference to the pool" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "This call attempts to enable pool-wide local storage caching" } ],
    "implicit": false }, 
  { "name": "test_archive_target",
    "description": "This call tests if a location is valid",
    "result": [ "string", "An XMLRPC result" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "Reference to the pool" }, 
      { "type": "(string -> string) map",
        "name": "config",
        "doc": "Location config settings to test" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "This call tests if a location is valid" } ],
    "implicit": false }, 
  { "name": "set_vswitch_controller",
    "description": "Set the IP address of the vswitch controller.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "address",
        "doc": "IP address of the vswitch controller." } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Set the IP address of the vswitch controller." }, 
      { "transition": "extended",
        "release": "cowley",
        "description": "Allow to be set to the empty string (no controller is used)." }, 
      { "transition": "deprecated",
        "release": "falcon",
        "description": "Deprecated: use 'SDN_controller.introduce' and 'SDN_controller.forget' instead." } ],
    "implicit": false }, 
  { "name": "disable_redo_log",
    "description": "Disable the redo log if in use, unless HA is enabled.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Disable the redo log if in use, unless HA is enabled." } ],
    "implicit": false }, 
  { "name": "enable_redo_log",
    "description": "Enable the redo log on the given SR and start using it, unless HA is enabled.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "SR to hold the redo log." } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Enable the redo log on the given SR and start using it, unless HA is enabled." } ],
    "implicit": false }, 
  { "name": "certificate_sync",
    "description": "Sync SSL certificates from master to slaves.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Sync SSL certificates from master to slaves." } ],
    "implicit": false }, 
  { "name": "crl_list",
    "description": "List all installed SSL certificate revocation lists.",
    "result": [ "string set", "All installed CRLs" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "List all installed SSL certificate revocation lists." } ],
    "implicit": false }, 
  { "name": "crl_uninstall",
    "description": "Remove an SSL certificate revocation list.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "name",
        "doc": "The CRL name" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Remove an SSL certificate revocation list." } ],
    "implicit": false }, 
  { "name": "crl_install",
    "description": "Install an SSL certificate revocation list, pool-wide.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "name",
        "doc": "A name to give the CRL" }, 
      { "type": "string",
        "name": "cert",
        "doc": "The CRL" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Install an SSL certificate revocation list, pool-wide." } ],
    "implicit": false }, 
  { "name": "certificate_list",
    "description": "List all installed SSL certificates.",
    "result": [ "string set", "All installed certificates" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "List all installed SSL certificates." } ],
    "implicit": false }, 
  { "name": "certificate_uninstall",
    "description": "Remove an SSL certificate.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "name",
        "doc": "The certificate name" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Remove an SSL certificate." } ],
    "implicit": false }, 
  { "name": "certificate_install",
    "description": "Install an SSL certificate pool-wide.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "name",
        "doc": "A name to give the certificate" }, 
      { "type": "string",
        "name": "cert",
        "doc": "The certificate" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Install an SSL certificate pool-wide." } ],
    "implicit": false }, 
  { "name": "send_test_post",
    "description": "Send the given body to the given host and port, using HTTPS, and print the response.  This is used for debugging the SSL layer.",
    "result": [ "string", "The response" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "host",
        "doc": "" }, 
      { "type": "int",
        "name": "port",
        "doc": "" }, 
      { "type": "string",
        "name": "body",
        "doc": "" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Send the given body to the given host and port, using HTTPS, and print the response.  This is used for debugging the SSL layer." } ],
    "implicit": false }, 
  { "name": "retrieve_wlb_recommendations",
    "description": "Retrieves vm migrate recommendations for the pool from the workload balancing server",
    "result": [ "(VM ref -> string set) map", "The list of vm migration recommendations" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Retrieves vm migrate recommendations for the pool from the workload balancing server" } ],
    "implicit": false }, 
  { "name": "retrieve_wlb_configuration",
    "description": "Retrieves the pool optimization criteria from the workload balancing server",
    "result": [ "(string -> string) map", "The configuration used in optimizing this pool" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Retrieves the pool optimization criteria from the workload balancing server" } ],
    "implicit": false }, 
  { "name": "send_wlb_configuration",
    "description": "Sets the pool optimization criteria for the workload balancing server",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "(string -> string) map",
        "name": "config",
        "doc": "The configuration to use in optimizing this pool" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Sets the pool optimization criteria for the workload balancing server" } ],
    "implicit": false }, 
  { "name": "deconfigure_wlb",
    "description": "Permanently deconfigures workload balancing monitoring on this pool",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Permanently deconfigures workload balancing monitoring on this pool" } ],
    "implicit": false }, 
  { "name": "initialize_wlb",
    "description": "Initializes workload balancing monitoring on this pool with the specified wlb server",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "wlb_url",
        "doc": "The ip address and port to use when accessing the wlb server" }, 
      { "type": "string",
        "name": "wlb_username",
        "doc": "The username used to authenticate with the wlb server" }, 
      { "type": "string",
        "name": "wlb_password",
        "doc": "The password used to authenticate with the wlb server" }, 
      { "type": "string",
        "name": "xenserver_username",
        "doc": "The username used by the wlb server to authenticate with the xenserver" }, 
      { "type": "string",
        "name": "xenserver_password",
        "doc": "The password used by the wlb server to authenticate with the xenserver" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Initializes workload balancing monitoring on this pool with the specified wlb server" } ],
    "implicit": false }, 
  { "name": "detect_nonhomogeneous_external_auth",
    "description": "This call asynchronously detects if the external authentication configuration in any slave is different from that in the master and raises appropriate alerts",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "pool",
        "doc": "The pool where to detect non-homogeneous external authentication configuration" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "This call asynchronously detects if the external authentication configuration in any slave is different from that in the master and raises appropriate alerts" } ],
    "implicit": false }, 
  { "name": "disable_external_auth",
    "description": "This call disables external authentication on all the hosts of the pool",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "pool",
        "doc": "The pool whose external authentication should be disabled" }, 
      { "type": "(string -> string) map",
        "name": "config",
        "doc": "Optional parameters as a list of key-values containing the configuration data" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "This call disables external authentication on all the hosts of the pool" } ],
    "implicit": false }, 
  { "name": "enable_external_auth",
    "description": "This call enables external authentication on all the hosts of the pool",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "pool",
        "doc": "The pool whose external authentication should be enabled" }, 
      { "type": "(string -> string) map",
        "name": "config",
        "doc": "A list of key-values containing the configuration data" }, 
      { "type": "string",
        "name": "service_name",
        "doc": "The name of the service" }, 
      { "type": "string",
        "name": "auth_type",
        "doc": "The type of authentication (e.g. AD for Active Directory)" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "This call enables external authentication on all the hosts of the pool" } ],
    "implicit": false }, 
  { "name": "create_new_blob",
    "description": "Create a placeholder for a named binary blob of data that is associated with this pool",
    "result": [ "blob ref", "The reference of the blob, needed for populating its data" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "pool",
        "doc": "The pool" }, 
      { "type": "string",
        "name": "name",
        "doc": "The name associated with the blob" }, 
      { "type": "string",
        "name": "mime_type",
        "doc": "The mime type for the data. Empty string translates to application/octet-stream" }, 
      { "type": "bool",
        "name": "public",
        "doc": "True if the blob should be publicly available" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Create a placeholder for a named binary blob of data that is associated with this pool" } ],
    "implicit": false }, 
  { "name": "set_ha_host_failures_to_tolerate",
    "description": "Set the maximum number of host failures to consider in the HA VM restart planner",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "The pool" }, 
      { "type": "int",
        "name": "value",
        "doc": "New number of host failures to consider" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Set the maximum number of host failures to consider in the HA VM restart planner" } ],
    "implicit": false }, 
  { "name": "ha_compute_vm_failover_plan",
    "description": "Return a VM failover plan assuming a given subset of hosts fail",
    "result": [ "(VM ref -> (string -> string) map) map", "VM failover plan: a map of VM to host to restart the host on" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref set",
        "name": "failed_hosts",
        "doc": "The set of hosts to assume have failed" }, 
      { "type": "VM ref set",
        "name": "failed_vms",
        "doc": "The set of VMs to restart" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Return a VM failover plan assuming a given subset of hosts fail" } ],
    "implicit": false }, 
  { "name": "ha_compute_hypothetical_max_host_failures_to_tolerate",
    "description": "Returns the maximum number of host failures we could tolerate before we would be unable to restart the provided VMs",
    "result": [ "int", "maximum value for ha_host_failures_to_tolerate given provided configuration" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "(VM ref -> string) map",
        "name": "configuration",
        "doc": "Map of protected VM reference to restart priority" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Returns the maximum number of host failures we could tolerate before we would be unable to restart the provided VMs" } ],
    "implicit": false }, 
  { "name": "ha_compute_max_host_failures_to_tolerate",
    "description": "Returns the maximum number of host failures we could tolerate before we would be unable to restart configured VMs",
    "result": [ "int", "maximum value for ha_host_failures_to_tolerate given current configuration" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Returns the maximum number of host failures we could tolerate before we would be unable to restart configured VMs" } ],
    "implicit": false }, 
  { "name": "ha_failover_plan_exists",
    "description": "Returns true if a VM failover plan exists for up to 'n' host failures",
    "result": [ "bool", "true if a failover plan exists for the supplied number of host failures" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "int",
        "name": "n",
        "doc": "The number of host failures to plan for" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Returns true if a VM failover plan exists for up to 'n' host failures" } ],
    "implicit": false }, 
  { "name": "ha_prevent_restarts_for",
    "description": "When this call returns the VM restart logic will not run for the requested number of seconds. If the argument is zero then the restart thread is immediately unblocked",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "int",
        "name": "seconds",
        "doc": "The number of seconds to block the restart thread for" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando-update-1",
        "description": "When this call returns the VM restart logic will not run for the requested number of seconds. If the argument is zero then the restart thread is immediately unblocked" } ],
    "implicit": false }, 
  { "name": "designate_new_master",
    "description": "Perform an orderly handover of the role of master to the referenced host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host who should become the new master" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Perform an orderly handover of the role of master to the referenced host." } ],
    "implicit": false }, 
  { "name": "sync_database",
    "description": "Forcibly synchronise the database now",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Forcibly synchronise the database now" } ],
    "implicit": false }, 
  { "name": "disable_ha",
    "description": "Turn off High Availability mode",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Turn off High Availability mode" } ],
    "implicit": false }, 
  { "name": "enable_ha",
    "description": "Turn on High Availability mode",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref set",
        "name": "heartbeat_srs",
        "doc": "Set of SRs to use for storage heartbeating" }, 
      { "type": "(string -> string) map",
        "name": "configuration",
        "doc": "Detailed HA configuration to apply" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Turn on High Availability mode" } ],
    "implicit": false }, 
  { "name": "create_VLAN_from_PIF",
    "description": "Create a pool-wide VLAN by taking the PIF.",
    "result": [ "PIF ref set", "The references of the created PIF objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "pif",
        "doc": "physical interface on any particular host, that identifies the PIF on which to create the (pool-wide) VLAN interface" }, 
      { "type": "network ref",
        "name": "network",
        "doc": "network to which this interface should be connected" }, 
      { "type": "int",
        "name": "VLAN",
        "doc": "VLAN tag for the new interface" } ],
    "errors": [ 
      { "name": "VLAN_TAG_INVALID",
        "doc": "You tried to create a VLAN, but the tag you gave was invalid -- it must be between 0 and 4094. The parameter echoes the VLAN tag you gave." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Create a pool-wide VLAN by taking the PIF." } ],
    "implicit": false }, 
  { "name": "management_reconfigure",
    "description": "Reconfigure the management network interface for all Hosts in the Pool",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "network",
        "doc": "The network" } ],
    "errors": [ 
      { "name": "HA_IS_ENABLED",
        "doc": "The operation could not be performed because HA is enabled on the Pool" }, 
      { "name": "PIF_NOT_PRESENT",
        "doc": "This host has no PIF on the given network." }, 
      { "name": "CANNOT_PLUG_BOND_SLAVE",
        "doc": "This PIF is a bond slave and cannot be plugged." }, 
      { "name": "PIF_INCOMPATIBLE_PRIMARY_ADDRESS_TYPE",
        "doc": "The primary address types are not compatible" }, 
      { "name": "PIF_HAS_NO_NETWORK_CONFIGURATION",
        "doc": "PIF has no IP configuration (mode currently set to 'none')" }, 
      { "name": "PIF_HAS_NO_V6_NETWORK_CONFIGURATION",
        "doc": "PIF has no IPv6 configuration (mode currently set to 'none')" } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "Reconfigure the management network interface for all Hosts in the Pool" } ],
    "implicit": false }, 
  { "name": "create_VLAN",
    "description": "Create PIFs, mapping a network to the same physical interface/VLAN on each host. This call is deprecated: use Pool.create_VLAN_from_PIF instead.",
    "result": [ "PIF ref set", "The references of the created PIF objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "device",
        "doc": "physical interface on which to create the VLAN interface" }, 
      { "type": "network ref",
        "name": "network",
        "doc": "network to which this interface should be connected" }, 
      { "type": "int",
        "name": "VLAN",
        "doc": "VLAN tag for the new interface" } ],
    "errors": [ 
      { "name": "VLAN_TAG_INVALID",
        "doc": "You tried to create a VLAN, but the tag you gave was invalid -- it must be between 0 and 4094. The parameter echoes the VLAN tag you gave." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Create PIFs, mapping a network to the same physical interface/VLAN on each host. This call is deprecated: use Pool.create_VLAN_from_PIF instead." } ],
    "implicit": false }, 
  { "name": "recover_slaves",
    "description": "Instruct a pool master, M, to try and contact its slaves and, if slaves are in emergency mode, reset their master address to M.",
    "result": [ "host ref set", "list of hosts whose master address were successfully reset" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Instruct a pool master, M, to try and contact its slaves and, if slaves are in emergency mode, reset their master address to M." } ],
    "implicit": false }, 
  { "name": "emergency_reset_master",
    "description": "Instruct a slave already in a pool that the master has changed",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "master_address",
        "doc": "The hostname of the master" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Instruct a slave already in a pool that the master has changed" } ],
    "implicit": false }, 
  { "name": "emergency_transition_to_master",
    "description": "Instruct host that's currently a slave to transition to being master",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Instruct host that's currently a slave to transition to being master" } ],
    "implicit": false }, 
  { "name": "eject",
    "description": "Instruct a pool master to eject a host from the pool",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host to eject" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Instruct a pool master to eject a host from the pool" } ],
    "implicit": false }, 
  { "name": "join_force",
    "description": "Instruct host to join a new pool",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "master_address",
        "doc": "The hostname of the master of the pool to join" }, 
      { "type": "string",
        "name": "master_username",
        "doc": "The username of the master (for initial authentication)" }, 
      { "type": "string",
        "name": "master_password",
        "doc": "The password for the master (for initial authentication)" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Instruct host to join a new pool" } ],
    "implicit": false }, 
  { "name": "join",
    "description": "Instruct host to join a new pool",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "master_address",
        "doc": "The hostname of the master of the pool to join" }, 
      { "type": "string",
        "name": "master_username",
        "doc": "The username of the master (for initial authentication)" }, 
      { "type": "string",
        "name": "master_password",
        "doc": "The password for the master (for initial authentication)" } ],
    "errors": [ 
      { "name": "JOINING_HOST_CANNOT_CONTAIN_SHARED_SRS",
        "doc": "The server joining the pool cannot contain any shared storage." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Instruct host to join a new pool" } ],
    "implicit": false }, 
  { "name": "set_uefi_certificates",
    "description": "Set the uefi_certificates field of the given pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "plymouth",
        "description": "The UEFI certificates allowing Secure Boot" } ],
    "implicit": true }, 
  { "name": "set_live_patching_disabled",
    "description": "Set the live_patching_disabled field of the given pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "bool",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "The pool-wide flag to show if the live patching feauture is disabled or not." } ],
    "implicit": true }, 
  { "name": "set_policy_no_vendor_device",
    "description": "Set the policy_no_vendor_device field of the given pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "bool",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "The pool-wide policy for clients on whether to use the vendor device or not on newly created VMs. This field will also be consulted if the 'has_vendor_device' field is not specified in the VM.create call." } ],
    "implicit": true }, 
  { "name": "set_wlb_verify_cert",
    "description": "Set the wlb_verify_cert field of the given pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "bool",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "true if communication with the WLB server should enforce SSL certificate verification." } ],
    "implicit": true }, 
  { "name": "set_wlb_enabled",
    "description": "Set the wlb_enabled field of the given pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "bool",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "true if workload balancing is enabled on the pool, false otherwise" } ],
    "implicit": true }, 
  { "name": "remove_from_health_check_config",
    "description": "Remove the given key and its corresponding value from the health_check_config field of the given pool.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Configuration for the automatic health check feature" } ],
    "implicit": true }, 
  { "name": "add_to_health_check_config",
    "description": "Add the given key-value pair to the health_check_config field of the given pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Configuration for the automatic health check feature" } ],
    "implicit": true }, 
  { "name": "set_health_check_config",
    "description": "Set the health_check_config field of the given pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Configuration for the automatic health check feature" } ],
    "implicit": true }, 
  { "name": "remove_from_gui_config",
    "description": "Remove the given key and its corresponding value from the gui_config field of the given pool.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "gui-specific configuration for pool" } ],
    "implicit": true }, 
  { "name": "add_to_gui_config",
    "description": "Add the given key-value pair to the gui_config field of the given pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "gui-specific configuration for pool" } ],
    "implicit": true }, 
  { "name": "set_gui_config",
    "description": "Set the gui_config field of the given pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "gui-specific configuration for pool" } ],
    "implicit": true }, 
  { "name": "remove_tags",
    "description": "Remove the given value from the tags field of the given pool.  If the value is not in that Set, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "add_tags",
    "description": "Add the given value to the tags field of the given pool.  If the value is already in that Set, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "set_tags",
    "description": "Set the tags field of the given pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string set",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "set_ha_allow_overcommit",
    "description": "Set the ha_allow_overcommit field of the given pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "bool",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "If set to false then operations which would cause the Pool to become overcommitted will be blocked." } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given pool.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_crash_dump_SR",
    "description": "Set the crash_dump_SR field of the given pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "SR ref",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The SR in which VDIs for crash dumps are created" } ],
    "implicit": true }, 
  { "name": "set_suspend_image_SR",
    "description": "Set the suspend_image_SR field of the given pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "SR ref",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The SR in which VDIs for suspend images are created" } ],
    "implicit": true }, 
  { "name": "set_default_SR",
    "description": "Set the default_SR field of the given pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "SR ref",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Default SR for VDIs" } ],
    "implicit": true }, 
  { "name": "set_name_description",
    "description": "Set the name_description field of the given pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Description" } ],
    "implicit": true }, 
  { "name": "set_name_label",
    "description": "Set the name_label field of the given pool.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Short name" } ],
    "implicit": true }, 
  { "name": "get_uefi_certificates",
    "description": "Get the uefi_certificates field of the given pool.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "plymouth",
        "description": "The UEFI certificates allowing Secure Boot" } ],
    "implicit": true }, 
  { "name": "get_igmp_snooping_enabled",
    "description": "Get the igmp_snooping_enabled field of the given pool.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "true if IGMP snooping is enabled in the pool, false otherwise." } ],
    "implicit": true }, 
  { "name": "get_live_patching_disabled",
    "description": "Get the live_patching_disabled field of the given pool.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "The pool-wide flag to show if the live patching feauture is disabled or not." } ],
    "implicit": true }, 
  { "name": "get_policy_no_vendor_device",
    "description": "Get the policy_no_vendor_device field of the given pool.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "The pool-wide policy for clients on whether to use the vendor device or not on newly created VMs. This field will also be consulted if the 'has_vendor_device' field is not specified in the VM.create call." } ],
    "implicit": true }, 
  { "name": "get_cpu_info",
    "description": "Get the cpu_info field of the given pool.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Details about the physical CPUs on the pool" } ],
    "implicit": true }, 
  { "name": "get_guest_agent_config",
    "description": "Get the guest_agent_config field of the given pool.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Pool-wide guest agent configuration information" } ],
    "implicit": true }, 
  { "name": "get_current_operations",
    "description": "Get the current_operations field of the given pool.",
    "result": [ "(string -> enum pool_allowed_operations) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "implicit": true }, 
  { "name": "get_allowed_operations",
    "description": "Get the allowed_operations field of the given pool.",
    "result": [ "enum pool_allowed_operations set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "implicit": true }, 
  { "name": "get_ha_cluster_stack",
    "description": "Get the ha_cluster_stack field of the given pool.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "The HA cluster stack that is currently in use. Only valid when HA is enabled." } ],
    "implicit": true }, 
  { "name": "get_metadata_VDIs",
    "description": "Get the metadata_VDIs field of the given pool.",
    "result": [ "VDI ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "The set of currently known metadata VDIs for this pool" } ],
    "implicit": true }, 
  { "name": "get_restrictions",
    "description": "Get the restrictions field of the given pool.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Pool-wide restrictions currently in effect" } ],
    "implicit": true }, 
  { "name": "get_vswitch_controller",
    "description": "Get the vswitch_controller field of the given pool.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "the IP address of the vswitch controller." }, 
      { "transition": "deprecated",
        "release": "falcon",
        "description": "Deprecated: set the IP address of the vswitch controller in SDN_controller instead." } ],
    "implicit": true }, 
  { "name": "get_redo_log_vdi",
    "description": "Get the redo_log_vdi field of the given pool.",
    "result": [ "VDI ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "indicates the VDI to use for the redo-log other than when HA is enabled" } ],
    "implicit": true }, 
  { "name": "get_redo_log_enabled",
    "description": "Get the redo_log_enabled field of the given pool.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "true a redo-log is to be used other than when HA is enabled, false otherwise" } ],
    "implicit": true }, 
  { "name": "get_wlb_verify_cert",
    "description": "Get the wlb_verify_cert field of the given pool.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "true if communication with the WLB server should enforce SSL certificate verification." } ],
    "implicit": true }, 
  { "name": "get_wlb_enabled",
    "description": "Get the wlb_enabled field of the given pool.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "true if workload balancing is enabled on the pool, false otherwise" } ],
    "implicit": true }, 
  { "name": "get_wlb_username",
    "description": "Get the wlb_username field of the given pool.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Username for accessing the workload balancing host" } ],
    "implicit": true }, 
  { "name": "get_wlb_url",
    "description": "Get the wlb_url field of the given pool.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Url for the configured workload balancing host" } ],
    "implicit": true }, 
  { "name": "get_health_check_config",
    "description": "Get the health_check_config field of the given pool.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Configuration for the automatic health check feature" } ],
    "implicit": true }, 
  { "name": "get_gui_config",
    "description": "Get the gui_config field of the given pool.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "gui-specific configuration for pool" } ],
    "implicit": true }, 
  { "name": "get_tags",
    "description": "Get the tags field of the given pool.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "get_blobs",
    "description": "Get the blobs field of the given pool.",
    "result": [ "(string -> blob ref) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Binary blobs associated with this pool" } ],
    "implicit": true }, 
  { "name": "get_ha_overcommitted",
    "description": "Get the ha_overcommitted field of the given pool.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "True if the Pool is considered to be overcommitted i.e. if there exist insufficient physical resources to tolerate the configured number of host failures" } ],
    "implicit": true }, 
  { "name": "get_ha_allow_overcommit",
    "description": "Get the ha_allow_overcommit field of the given pool.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "If set to false then operations which would cause the Pool to become overcommitted will be blocked." } ],
    "implicit": true }, 
  { "name": "get_ha_plan_exists_for",
    "description": "Get the ha_plan_exists_for field of the given pool.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Number of future host failures we have managed to find a plan for. Once this reaches zero any future host failures will cause the failure of protected VMs." } ],
    "implicit": true }, 
  { "name": "get_ha_host_failures_to_tolerate",
    "description": "Get the ha_host_failures_to_tolerate field of the given pool.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Number of host failures to tolerate before the Pool is declared to be overcommitted" } ],
    "implicit": true }, 
  { "name": "get_ha_statefiles",
    "description": "Get the ha_statefiles field of the given pool.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "HA statefile VDIs in use" } ],
    "implicit": true }, 
  { "name": "get_ha_configuration",
    "description": "Get the ha_configuration field of the given pool.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "The current HA configuration" } ],
    "implicit": true }, 
  { "name": "get_ha_enabled",
    "description": "Get the ha_enabled field of the given pool.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "true if HA is enabled on the pool, false otherwise" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given pool.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_crash_dump_SR",
    "description": "Get the crash_dump_SR field of the given pool.",
    "result": [ "SR ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The SR in which VDIs for crash dumps are created" } ],
    "implicit": true }, 
  { "name": "get_suspend_image_SR",
    "description": "Get the suspend_image_SR field of the given pool.",
    "result": [ "SR ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The SR in which VDIs for suspend images are created" } ],
    "implicit": true }, 
  { "name": "get_default_SR",
    "description": "Get the default_SR field of the given pool.",
    "result": [ "SR ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Default SR for VDIs" } ],
    "implicit": true }, 
  { "name": "get_master",
    "description": "Get the master field of the given pool.",
    "result": [ "host ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The host that is pool master" } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name_description field of the given pool.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Description" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name_label field of the given pool.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Short name" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given pool.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the pool instance with the specified UUID.",
    "result": [ "pool ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Pool-wide information" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given pool.",
    "result": [ "pool record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Pool-wide information" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "pool_allowed_operations",
    "values": [ 
      { "name": "ha_enable",
        "doc": "Indicates this pool is in the process of enabling HA" }, 
      { "name": "ha_disable",
        "doc": "Indicates this pool is in the process of disabling HA" }, 
      { "name": "cluster_create",
        "doc": "Indicates this pool is in the process of creating a cluster" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "Pool-wide information" } ],
"tag": "" }, { "name": "pool_patch",
"description": "Pool-wide patches",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "default": "\"\"" }, 
  { "name": "version",
    "description": "Patch version number",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Patch version number" } ],
    "default": "\"\"" }, 
  { "name": "size",
    "description": "Size of the patch",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Size of the patch" } ],
    "default": "0" }, 
  { "name": "pool_applied",
    "description": "This patch should be applied across the entire pool",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "This patch should be applied across the entire pool" } ],
    "default": "false" }, 
  { "name": "host_patches",
    "description": "This hosts this patch is applied to.",
    "type": "host_patch ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "This hosts this patch is applied to." } ] }, 
  { "name": "after_apply_guidance",
    "description": "What the client should do after this patch has been applied.",
    "type": "enum after_apply_guidance set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "What the client should do after this patch has been applied." } ],
    "default": "{}" }, 
  { "name": "pool_update",
    "description": "A reference to the associated pool_update object",
    "type": "pool_update ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "A reference to the associated pool_update object" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of pool_patch references to pool_patch records for all pool_patchs known to the system.",
    "result": [ "(pool_patch ref -> pool_patch record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Pool-wide patches" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the pool_patchs known to the system.",
    "result": [ "pool_patch ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Pool-wide patches" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "clean_on_host",
    "description": "Removes the patch's files from the specified host",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "The patch to clean up" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host on which to clean the patch" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Removes the patch's files from the specified host" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ],
    "implicit": false }, 
  { "name": "destroy",
    "description": "Removes the patch's files from all hosts in the pool, and removes the database entries.  Only works on unapplied patches.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "The patch to destroy" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Removes the patch's files from all hosts in the pool, and removes the database entries.  Only works on unapplied patches." }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ],
    "implicit": false }, 
  { "name": "pool_clean",
    "description": "Removes the patch's files from all hosts in the pool, but does not remove the database entries",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "The patch to clean up" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Removes the patch's files from all hosts in the pool, but does not remove the database entries" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ],
    "implicit": false }, 
  { "name": "clean",
    "description": "Removes the patch's files from the server",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "The patch to clean up" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Removes the patch's files from the server" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ],
    "implicit": false }, 
  { "name": "precheck",
    "description": "Execute the precheck stage of the selected patch on a host and return its output",
    "result": [ "string", "the output of the patch prechecks" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "The patch whose prechecks will be run" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host to run the prechecks on" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Execute the precheck stage of the selected patch on a host and return its output" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ],
    "implicit": false }, 
  { "name": "pool_apply",
    "description": "Apply the selected patch to all hosts in the pool and return a map of host_ref -> patch output",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "The patch to apply" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Apply the selected patch to all hosts in the pool and return a map of host_ref -> patch output" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ],
    "implicit": false }, 
  { "name": "apply",
    "description": "Apply the selected patch to a host and return its output",
    "result": [ "string", "the output of the patch application process" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "The patch to apply" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host to apply the patch too" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Apply the selected patch to a host and return its output" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ],
    "implicit": false }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given pool_patch.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given pool_patch.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given pool_patch.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given pool_patch.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_pool_update",
    "description": "Get the pool_update field of the given pool_patch.",
    "result": [ "pool_update ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "A reference to the associated pool_update object" } ],
    "implicit": true }, 
  { "name": "get_after_apply_guidance",
    "description": "Get the after_apply_guidance field of the given pool_patch.",
    "result": [ "enum after_apply_guidance set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "What the client should do after this patch has been applied." } ],
    "implicit": true }, 
  { "name": "get_host_patches",
    "description": "Get the host_patches field of the given pool_patch.",
    "result": [ "host_patch ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "This hosts this patch is applied to." } ],
    "implicit": true }, 
  { "name": "get_pool_applied",
    "description": "Get the pool_applied field of the given pool_patch.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "This patch should be applied across the entire pool" } ],
    "implicit": true }, 
  { "name": "get_size",
    "description": "Get the size field of the given pool_patch.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Size of the patch" } ],
    "implicit": true }, 
  { "name": "get_version",
    "description": "Get the version field of the given pool_patch.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Patch version number" } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given pool_patch.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given pool_patch.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given pool_patch.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the pool_patch instances with the given label.",
    "result": [ "pool_patch ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Pool-wide patches" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the pool_patch instance with the specified UUID.",
    "result": [ "pool_patch ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Pool-wide patches" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given pool_patch.",
    "result": [ "pool_patch record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Pool-wide patches" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "after_apply_guidance",
    "values": [ 
      { "name": "restartHVM",
        "doc": "This patch requires HVM guests to be restarted once applied." }, 
      { "name": "restartPV",
        "doc": "This patch requires PV guests to be restarted once applied." }, 
      { "name": "restartHost",
        "doc": "This patch requires the host to be restarted once applied." }, 
      { "name": "restartXAPI",
        "doc": "This patch requires XAPI to be restarted once applied." } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "miami",
    "description": "Pool-wide patches" }, 
  { "transition": "deprecated",
    "release": "ely",
    "description": "" } ],
"tag": "" }, { "name": "pool_update",
"description": "Pool-wide updates to the host software",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "default": "\"\"" }, 
  { "name": "version",
    "description": "Update version number",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Update version number" } ],
    "default": "\"\"" }, 
  { "name": "installation_size",
    "description": "Size of the update in bytes",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Size of the update in bytes" } ],
    "default": "0" }, 
  { "name": "key",
    "description": "GPG key of the update",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "GPG key of the update" } ],
    "default": "\"\"" }, 
  { "name": "after_apply_guidance",
    "description": "What the client should do after this update has been applied.",
    "type": "enum update_after_apply_guidance set",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "What the client should do after this update has been applied." } ],
    "default": "{}" }, 
  { "name": "vdi",
    "description": "VDI the update was uploaded to",
    "type": "VDI ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "VDI the update was uploaded to" } ] }, 
  { "name": "hosts",
    "description": "The hosts that have applied this update.",
    "type": "host ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "The hosts that have applied this update." } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "additional configuration" } ],
    "default": "{}" }, 
  { "name": "enforce_homogeneity",
    "description": "Flag - if true, all hosts in a pool must apply this update",
    "type": "bool",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "Flag - if true, all hosts in a pool must apply this update" } ],
    "default": "false" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of pool_update references to pool_update records for all pool_updates known to the system.",
    "result": [ "(pool_update ref -> pool_update record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Pool-wide updates to the host software" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the pool_updates known to the system.",
    "result": [ "pool_update ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Pool-wide updates to the host software" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Removes the database entry. Only works on unapplied update.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "The update to destroy" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Removes the database entry. Only works on unapplied update." } ],
    "implicit": false }, 
  { "name": "pool_clean",
    "description": "Removes the update's files from all hosts in the pool, but does not revert the update",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "The update to clean up" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Removes the update's files from all hosts in the pool, but does not revert the update" } ],
    "implicit": false }, 
  { "name": "pool_apply",
    "description": "Apply the selected update to all hosts in the pool",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "The update to apply" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Apply the selected update to all hosts in the pool" } ],
    "implicit": false }, 
  { "name": "apply",
    "description": "Apply the selected update to a host",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "The update to apply" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host to apply the update to." } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Apply the selected update to a host" } ],
    "implicit": false }, 
  { "name": "precheck",
    "description": "Execute the precheck stage of the selected update on a host",
    "result": [ "enum livepatch_status", "The precheck pool update" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "The update whose prechecks will be run" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host to run the prechecks on." } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Execute the precheck stage of the selected update on a host" } ],
    "implicit": false }, 
  { "name": "introduce",
    "description": "Introduce update VDI",
    "result": [ "pool_update ref", "the introduced pool update" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "vdi",
        "doc": "The VDI which contains a software update." } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Introduce update VDI" } ],
    "implicit": false }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given pool_update.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given pool_update.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given pool_update.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_enforce_homogeneity",
    "description": "Get the enforce_homogeneity field of the given pool_update.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "Flag - if true, all hosts in a pool must apply this update" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given pool_update.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_hosts",
    "description": "Get the hosts field of the given pool_update.",
    "result": [ "host ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "The hosts that have applied this update." } ],
    "implicit": true }, 
  { "name": "get_vdi",
    "description": "Get the vdi field of the given pool_update.",
    "result": [ "VDI ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "VDI the update was uploaded to" } ],
    "implicit": true }, 
  { "name": "get_after_apply_guidance",
    "description": "Get the after_apply_guidance field of the given pool_update.",
    "result": [ "enum update_after_apply_guidance set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "What the client should do after this update has been applied." } ],
    "implicit": true }, 
  { "name": "get_key",
    "description": "Get the key field of the given pool_update.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "GPG key of the update" } ],
    "implicit": true }, 
  { "name": "get_installation_size",
    "description": "Get the installation_size field of the given pool_update.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Size of the update in bytes" } ],
    "implicit": true }, 
  { "name": "get_version",
    "description": "Get the version field of the given pool_update.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Update version number" } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given pool_update.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given pool_update.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given pool_update.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the pool_update instances with the given label.",
    "result": [ "pool_update ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Pool-wide updates to the host software" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the pool_update instance with the specified UUID.",
    "result": [ "pool_update ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Pool-wide updates to the host software" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given pool_update.",
    "result": [ "pool_update record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "pool_update ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Pool-wide updates to the host software" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "update_after_apply_guidance",
    "values": [ 
      { "name": "restartHVM",
        "doc": "This update requires HVM guests to be restarted once applied." }, 
      { "name": "restartPV",
        "doc": "This update requires PV guests to be restarted once applied." }, 
      { "name": "restartHost",
        "doc": "This update requires the host to be restarted once applied." }, 
      { "name": "restartXAPI",
        "doc": "This update requires XAPI to be restarted once applied." } ] }, 
  { "name": "livepatch_status",
    "values": [ 
      { "name": "ok_livepatch_complete",
        "doc": "An applicable live patch exists for every required component" }, 
      { "name": "ok_livepatch_incomplete",
        "doc": "An applicable live patch exists but it is not sufficient" }, 
      { "name": "ok",
        "doc": "There is no applicable live patch" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "ely",
    "description": "Pool-wide updates to the host software" } ],
"tag": "" }, 
{ "name": "VM",
"description": "A virtual machine (or 'guest').",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "allowed_operations",
    "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client.",
    "type": "enum vm_operations set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "default": "{}" }, 
  { "name": "current_operations",
    "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task.",
    "type": "(string -> enum vm_operations) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "default": "{}" }, 
  { "name": "power_state",
    "description": "Current power state of the machine",
    "type": "enum vm_power_state",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Current power state of the machine" } ] }, 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "default": "\"\"" }, 
  { "name": "user_version",
    "description": "Creators of VMs and templates may store version information here.",
    "type": "int",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Creators of VMs and templates may store version information here." } ] }, 
  { "name": "is_a_template",
    "description": "true if this is a template. Template VMs can never be started, they are used only for cloning other VMs",
    "type": "bool",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if this is a template. Template VMs can never be started, they are used only for cloning other VMs" } ] }, 
  { "name": "is_default_template",
    "description": "true if this is a default template. Default template VMs can never be started or migrated, they are used only for cloning other VMs",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "Identifies default templates" } ],
    "default": "false" }, 
  { "name": "suspend_VDI",
    "description": "The VDI that a suspend image is stored on. (Only has meaning if VM is currently suspended)",
    "type": "VDI ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The VDI that a suspend image is stored on. (Only has meaning if VM is currently suspended)" } ] }, 
  { "name": "resident_on",
    "description": "the host the VM is currently resident on",
    "type": "host ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the host the VM is currently resident on" } ] }, 
  { "name": "affinity",
    "description": "A host which the VM has some affinity for (or NULL). This is used as a hint to the start call when it decides where to run the VM. Resource constraints may cause the VM to be started elsewhere.",
    "type": "host ref",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A host which the VM has some affinity for (or NULL). This is used as a hint to the start call when it decides where to run the VM. Resource constraints may cause the VM to be started elsewhere." } ] }, 
  { "name": "memory_overhead",
    "description": "Virtualization memory overhead (bytes).",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Virtualization memory overhead (bytes)." } ],
    "default": "0" }, 
  { "name": "memory_target",
    "description": "Dynamically-set memory target (bytes). The value of this field indicates the current target for memory available to this VM.",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Dynamically-set memory target (bytes). The value of this field indicates the current target for memory available to this VM." }, 
      { "transition": "deprecated",
        "release": "midnight-ride",
        "description": "" } ],
    "default": "0" }, 
  { "name": "memory_static_max",
    "description": "Statically-set (i.e. absolute) maximum (bytes). The value of this field at VM start time acts as a hard limit of the amount of memory a guest can use. New values only take effect on reboot.",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Statically-set (i.e. absolute) maximum (bytes). The value of this field at VM start time acts as a hard limit of the amount of memory a guest can use. New values only take effect on reboot." } ] }, 
  { "name": "memory_dynamic_max",
    "description": "Dynamic maximum (bytes)",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Dynamic maximum (bytes)" } ] }, 
  { "name": "memory_dynamic_min",
    "description": "Dynamic minimum (bytes)",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Dynamic minimum (bytes)" } ] }, 
  { "name": "memory_static_min",
    "description": "Statically-set (i.e. absolute) mininum (bytes). The value of this field indicates the least amount of memory this VM can boot with without crashing.",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Statically-set (i.e. absolute) mininum (bytes). The value of this field indicates the least amount of memory this VM can boot with without crashing." } ] }, 
  { "name": "VCPUs_params",
    "description": "configuration parameters for the selected VCPU policy",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "configuration parameters for the selected VCPU policy" } ] }, 
  { "name": "VCPUs_max",
    "description": "Max number of VCPUs",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Max number of VCPUs" } ] }, 
  { "name": "VCPUs_at_startup",
    "description": "Boot number of VCPUs",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Boot number of VCPUs" } ] }, 
  { "name": "actions_after_shutdown",
    "description": "action to take after the guest has shutdown itself",
    "type": "enum on_normal_exit",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "action to take after the guest has shutdown itself" } ] }, 
  { "name": "actions_after_reboot",
    "description": "action to take after the guest has rebooted itself",
    "type": "enum on_normal_exit",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "action to take after the guest has rebooted itself" } ] }, 
  { "name": "actions_after_crash",
    "description": "action to take if the guest crashes",
    "type": "enum on_crash_behaviour",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "action to take if the guest crashes" } ] }, 
  { "name": "consoles",
    "description": "virtual console devices",
    "type": "console ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "virtual console devices" } ] }, 
  { "name": "VIFs",
    "description": "virtual network interfaces",
    "type": "VIF ref set",
    "qualifier": "RO/runtime",
    "tag": "networking",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "virtual network interfaces" } ] }, 
  { "name": "VBDs",
    "description": "virtual block devices",
    "type": "VBD ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "virtual block devices" } ] }, 
  { "name": "VUSBs",
    "description": "vitual usb devices",
    "type": "VUSB ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "vitual usb devices" } ] }, 
  { "name": "crash_dumps",
    "description": "crash dumps associated with this VM",
    "type": "crashdump ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "crash dumps associated with this VM" } ] }, 
  { "name": "VTPMs",
    "description": "virtual TPMs",
    "type": "VTPM ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "virtual TPMs" } ] }, 
  { "name": "PV_bootloader",
    "description": "name of or path to bootloader",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "name of or path to bootloader" } ] }, 
  { "name": "PV_kernel",
    "description": "path to the kernel",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "path to the kernel" } ] }, 
  { "name": "PV_ramdisk",
    "description": "path to the initrd",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "path to the initrd" } ] }, 
  { "name": "PV_args",
    "description": "kernel command-line arguments",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "kernel command-line arguments" } ] }, 
  { "name": "PV_bootloader_args",
    "description": "miscellaneous arguments for the bootloader",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "miscellaneous arguments for the bootloader" } ] }, 
  { "name": "PV_legacy_args",
    "description": "to make Zurich guests boot",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "to make Zurich guests boot" } ] }, 
  { "name": "HVM_boot_policy",
    "description": "HVM boot policy",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "" }, 
      { "transition": "deprecated",
        "release": "kolkata",
        "description": "Replaced by VM.domain_type" } ] }, 
  { "name": "HVM_boot_params",
    "description": "HVM boot params",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "HVM boot params" } ] }, 
  { "name": "HVM_shadow_multiplier",
    "description": "multiplier applied to the amount of shadow that will be made available to the guest",
    "type": "float",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "multiplier applied to the amount of shadow that will be made available to the guest" } ],
    "default": "1." }, 
  { "name": "platform",
    "description": "platform-specific configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "platform-specific configuration" } ] }, 
  { "name": "PCI_bus",
    "description": "PCI bus path for pass-through devices",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "PCI bus path for pass-through devices" }, 
      { "transition": "deprecated",
        "release": "boston",
        "description": "Field was never used" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ] }, 
  { "name": "domid",
    "description": "domain ID (if available, -1 otherwise)",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "domain ID (if available, -1 otherwise)" } ] }, 
  { "name": "domarch",
    "description": "Domain architecture (if available, null string otherwise)",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Domain architecture (if available, null string otherwise)" } ] }, 
  { "name": "last_boot_CPU_flags",
    "description": "describes the CPU flags on which the VM was last booted",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "describes the CPU flags on which the VM was last booted" } ] }, 
  { "name": "is_control_domain",
    "description": "true if this is a control domain (domain 0 or a driver domain)",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if this is a control domain (domain 0 or a driver domain)" } ] }, 
  { "name": "metrics",
    "description": "metrics associated with this VM",
    "type": "VM_metrics ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "metrics associated with this VM" } ] }, 
  { "name": "guest_metrics",
    "description": "metrics associated with the running guest",
    "type": "VM_guest_metrics ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "metrics associated with the running guest" } ] }, 
  { "name": "last_booted_record",
    "description": "marshalled value containing VM record at time of last boot, updated dynamically to reflect the runtime state of the domain",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "marshalled value containing VM record at time of last boot, updated dynamically to reflect the runtime state of the domain" } ],
    "default": "\"\"" }, 
  { "name": "recommendations",
    "description": "An XML specification of recommended values and ranges for properties of this VM",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "An XML specification of recommended values and ranges for properties of this VM" } ] }, 
  { "name": "xenstore_data",
    "description": "data to be inserted into the xenstore tree (/local/domain/<domid>/vm-data) after the VM is created.",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "data to be inserted into the xenstore tree (/local/domain/<domid>/vm-data) after the VM is created." } ],
    "default": "{}" }, 
  { "name": "ha_always_run",
    "description": "if true then the system will attempt to keep the VM running as much as possible.",
    "type": "bool",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "if true then the system will attempt to keep the VM running as much as possible." }, 
      { "transition": "deprecated",
        "release": "boston",
        "description": "" } ],
    "default": "false" }, 
  { "name": "ha_restart_priority",
    "description": "has possible values: \"best-effort\" meaning \"try to restart this VM if possible but don't consider the Pool to be overcommitted if this is not possible\"; \"restart\" meaning \"this VM should be restarted\"; \"\" meaning \"do not try to restart this VM\"",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "has possible values: \"best-effort\" meaning \"try to restart this VM if possible but don't consider the Pool to be overcommitted if this is not possible\"; \"restart\" meaning \"this VM should be restarted\"; \"\" meaning \"do not try to restart this VM\"" } ],
    "default": "\"\"" }, 
  { "name": "is_a_snapshot",
    "description": "true if this is a snapshot. Snapshotted VMs can never be started, they are used only for cloning other VMs",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "true if this is a snapshot. Snapshotted VMs can never be started, they are used only for cloning other VMs" } ],
    "default": "false" }, 
  { "name": "snapshot_of",
    "description": "Ref pointing to the VM this snapshot is of.",
    "type": "VM ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Ref pointing to the VM this snapshot is of." } ],
    "default": "Null" }, 
  { "name": "snapshots",
    "description": "List pointing to all the VM snapshots.",
    "type": "VM ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "List pointing to all the VM snapshots." } ] }, 
  { "name": "snapshot_time",
    "description": "Date/time when this snapshot was created.",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Date/time when this snapshot was created." } ],
    "default": "19700101T00:00:00Z" }, 
  { "name": "transportable_snapshot_id",
    "description": "Transportable ID of the snapshot VM",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Transportable ID of the snapshot VM" } ],
    "default": "\"\"" }, 
  { "name": "blobs",
    "description": "Binary blobs associated with this VM",
    "type": "(string -> blob ref) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Binary blobs associated with this VM" } ],
    "default": "{}" }, 
  { "name": "tags",
    "description": "user-specified tags for categorization purposes",
    "type": "string set",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "default": "{}" }, 
  { "name": "blocked_operations",
    "description": "List of operations which have been explicitly blocked and an error code",
    "type": "(enum vm_operations -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "List of operations which have been explicitly blocked and an error code" } ],
    "default": "{}" }, 
  { "name": "snapshot_info",
    "description": "Human-readable information concerning this snapshot",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Human-readable information concerning this snapshot" } ],
    "default": "{}" }, 
  { "name": "snapshot_metadata",
    "description": "Encoded information about the VM's metadata this is a snapshot of",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Encoded information about the VM's metadata this is a snapshot of" } ],
    "default": "\"\"" }, 
  { "name": "parent",
    "description": "Ref pointing to the parent of this VM",
    "type": "VM ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Ref pointing to the parent of this VM" } ],
    "default": "Null" }, 
  { "name": "children",
    "description": "List pointing to all the children of this VM",
    "type": "VM ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "List pointing to all the children of this VM" } ] }, 
  { "name": "bios_strings",
    "description": "BIOS strings",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "BIOS strings" } ],
    "default": "{}" }, 
  { "name": "protection_policy",
    "description": "Ref pointing to a protection policy for this VM",
    "type": "VMPP ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "deprecated",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "is_snapshot_from_vmpp",
    "description": "true if this snapshot was created by the protection policy",
    "type": "bool",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "deprecated",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "default": "false" }, 
  { "name": "snapshot_schedule",
    "description": "Ref pointing to a snapshot schedule for this VM",
    "type": "VMSS ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "Ref pointing to a snapshot schedule for this VM" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "is_vmss_snapshot",
    "description": "true if this snapshot was created by the snapshot schedule",
    "type": "bool",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "true if this snapshot was created by the snapshot schedule" } ],
    "default": "false" }, 
  { "name": "appliance",
    "description": "the appliance to which this VM belongs",
    "type": "VM_appliance ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the appliance to which this VM belongs" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "start_delay",
    "description": "The delay to wait before proceeding to the next order in the startup sequence (seconds)",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "The delay to wait before proceeding to the next order in the startup sequence (seconds)" } ],
    "default": "0" }, 
  { "name": "shutdown_delay",
    "description": "The delay to wait before proceeding to the next order in the shutdown sequence (seconds)",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "The delay to wait before proceeding to the next order in the shutdown sequence (seconds)" } ],
    "default": "0" }, 
  { "name": "order",
    "description": "The point in the startup or shutdown sequence at which this VM will be started",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "The point in the startup or shutdown sequence at which this VM will be started" } ],
    "default": "0" }, 
  { "name": "VGPUs",
    "description": "Virtual GPUs",
    "type": "VGPU ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ] }, 
  { "name": "attached_PCIs",
    "description": "Currently passed-through PCI devices",
    "type": "PCI ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ] }, 
  { "name": "suspend_SR",
    "description": "The SR on which a suspend image is stored",
    "type": "SR ref",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "The SR on which a suspend image is stored" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "version",
    "description": "The number of times this VM has been recovered",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "The number of times this VM has been recovered" } ],
    "default": "0" }, 
  { "name": "generation_id",
    "description": "Generation ID of the VM",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "clearwater",
        "description": "Generation ID of the VM" } ],
    "default": "\"0:0\"" }, 
  { "name": "hardware_platform_version",
    "description": "The host virtual hardware platform version the VM can run on",
    "type": "int",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cream",
        "description": "The host virtual hardware platform version the VM can run on" } ],
    "default": "0" }, 
  { "name": "has_vendor_device",
    "description": "When an HVM guest starts, this controls the presence of the emulated C000 PCI device which triggers Windows Update to fetch or update PV drivers.",
    "type": "bool",
    "qualifier": "RO/constructor",
    "tag": "windows-vm",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "default": "false" }, 
  { "name": "requires_reboot",
    "description": "Indicates whether a VM requires a reboot in order to update its configuration, e.g. its memory allocation.",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "default": "false" }, 
  { "name": "reference_label",
    "description": "Textual reference to the template used to create a VM. This can be used by clients in need of an immutable reference to the template since the latter's uuid and name_label may change, for example, after a package installation or upgrade.",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Textual reference to the template used to create a VM. This can be used by clients in need of an immutable reference to the template since the latter's uuid and name_label may change, for example, after a package installation or upgrade." } ],
    "default": "\"\"" }, 
  { "name": "domain_type",
    "description": "The type of domain that will be created when the VM is started",
    "type": "enum domain_type",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "jura",
        "description": "Internal-only field; not yet in the public API" }, 
      { "transition": "published",
        "release": "kolkata",
        "description": "The field is now valid" } ],
    "default": "unspecified" }, 
  { "name": "NVRAM",
    "description": "initial value for guest NVRAM (containing UEFI variables, etc). Cannot be changed while the VM is running",
    "type": "(string -> string) map",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "naples",
        "description": "" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of VM references to VM records for all VMs known to the system.",
    "result": [ "(VM ref -> VM record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the VMs known to the system.",
    "result": [ "VM ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "" } ],
    "implicit": true }, 
  { "name": "set_HVM_boot_policy",
    "description": "Set the VM.HVM_boot_policy field of the given VM, which will take effect when it is next started",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "string",
        "name": "value",
        "doc": "The new HVM boot policy" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "" }, 
      { "transition": "deprecated",
        "release": "kolkata",
        "description": "Replaced by VM.set_domain_type" } ],
    "implicit": false }, 
  { "name": "set_domain_type",
    "description": "Set the VM.domain_type field of the given VM, which will take effect when it is next started",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "enum domain_type",
        "name": "value",
        "doc": "The new domain type" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "set_actions_after_crash",
    "description": "Sets the actions_after_crash parameter",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM to set" }, 
      { "type": "enum on_crash_behaviour",
        "name": "value",
        "doc": "The new value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Sets the actions_after_crash parameter" } ],
    "implicit": false }, 
  { "name": "import",
    "description": "Import an XVA from a URI",
    "result": [ "VM ref set", "Imported VM reference" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "url",
        "doc": "The URL of the XVA file" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The destination SR for the disks" }, 
      { "type": "bool",
        "name": "full_restore",
        "doc": "Perform a full restore" }, 
      { "type": "bool",
        "name": "force",
        "doc": "Force the import" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Import an XVA from a URI" } ],
    "implicit": false }, 
  { "name": "set_has_vendor_device",
    "description": "Controls whether, when the VM starts in HVM mode, its virtual hardware will include the emulated PCI device for which drivers may be available through Windows Update. Usually this should never be changed on a VM on which Windows has been installed: changing it on such a VM is likely to lead to a crash on next start.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM on which to set this flag" }, 
      { "type": "bool",
        "name": "value",
        "doc": "True to provide the vendor PCI device." } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "windows-vm",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Controls whether, when the VM starts in HVM mode, its virtual hardware will include the emulated PCI device for which drivers may be available through Windows Update. Usually this should never be changed on a VM on which Windows has been installed: changing it on such a VM is likely to lead to a crash on next start." } ],
    "implicit": false }, 
  { "name": "call_plugin",
    "description": "Call an API plugin on this vm",
    "result": [ "string", "Result from the plugin" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The vm" }, 
      { "type": "string",
        "name": "plugin",
        "doc": "The name of the plugin" }, 
      { "type": "string",
        "name": "fn",
        "doc": "The name of the function within the plugin" }, 
      { "type": "(string -> string) map",
        "name": "args",
        "doc": "Arguments for the function" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cream",
        "description": "Call an API plugin on this vm" } ],
    "implicit": false }, 
  { "name": "query_services",
    "description": "Query the system services advertised by this VM and register them. This can only be applied to a system domain.",
    "result": [ "(string -> string) map", "map of service type to name" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Query the system services advertised by this VM and register them. This can only be applied to a system domain." } ],
    "implicit": false }, 
  { "name": "set_appliance",
    "description": "Assign this VM to an appliance.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM to assign to an appliance." }, 
      { "type": "VM_appliance ref",
        "name": "value",
        "doc": "The appliance to which this VM should be assigned." } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Assign this VM to an appliance." } ],
    "implicit": false }, 
  { "name": "import_convert",
    "description": "Import using a conversion service.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "type",
        "doc": "Type of the conversion" }, 
      { "type": "string",
        "name": "username",
        "doc": "Admin username on the host" }, 
      { "type": "string",
        "name": "password",
        "doc": "Password on the host" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The destination SR" }, 
      { "type": "(string -> string) map",
        "name": "remote_config",
        "doc": "Remote configuration options" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Import using a conversion service." } ],
    "implicit": false }, 
  { "name": "recover",
    "description": "Recover the VM",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM to recover" }, 
      { "type": "session ref",
        "name": "session_to",
        "doc": "The session to which the VM is to be recovered." }, 
      { "type": "bool",
        "name": "force",
        "doc": "Whether the VM should replace newer versions of itself." } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Recover the VM" } ],
    "implicit": false }, 
  { "name": "get_SRs_required_for_recovery",
    "description": "List all the SR's that are required for the VM to be recovered",
    "result": [ "SR ref set", "refs for SRs required to recover the VM" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM for which the SRs have to be recovered" }, 
      { "type": "session ref",
        "name": "session_to",
        "doc": "The session to which the SRs of the VM have to be recovered." } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "creedence",
        "description": "List all the SR's that are required for the VM to be recovered" } ],
    "implicit": false }, 
  { "name": "assert_can_be_recovered",
    "description": "Assert whether all SRs required to recover this VM are available.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM to recover" }, 
      { "type": "session ref",
        "name": "session_to",
        "doc": "The session to which the VM is to be recovered." } ],
    "errors": [ 
      { "name": "VM_IS_PART_OF_AN_APPLIANCE",
        "doc": "This operation is not allowed as the VM is part of an appliance." }, 
      { "name": "VM_REQUIRES_SR",
        "doc": "You attempted to run a VM on a host which doesn't have access to an SR needed by the VM. The VM has at least one VBD attached to a VDI in the SR." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Assert whether all SRs required to recover this VM are available." } ],
    "implicit": false }, 
  { "name": "set_suspend_VDI",
    "description": "Set this VM's suspend VDI, which must be indentical to its current one",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "VDI ref",
        "name": "value",
        "doc": "The suspend VDI uuid" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Set this VM's suspend VDI, which must be indentical to its current one" } ],
    "implicit": false }, 
  { "name": "set_order",
    "description": "Set this VM's boot order",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "int",
        "name": "value",
        "doc": "This VM's boot order" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Set this VM's boot order" } ],
    "implicit": false }, 
  { "name": "set_shutdown_delay",
    "description": "Set this VM's shutdown delay in seconds",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "int",
        "name": "value",
        "doc": "This VM's shutdown delay in seconds" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Set this VM's shutdown delay in seconds" } ],
    "implicit": false }, 
  { "name": "set_start_delay",
    "description": "Set this VM's start delay in seconds",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "int",
        "name": "value",
        "doc": "This VM's start delay in seconds" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Set this VM's start delay in seconds" } ],
    "implicit": false }, 
  { "name": "set_snapshot_schedule",
    "description": "Set the value of the snapshot schedule field",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "VMSS ref",
        "name": "value",
        "doc": "The value" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "Set the value of the snapshot schedule field" } ],
    "implicit": false }, 
  { "name": "set_protection_policy",
    "description": "Set the value of the protection_policy field",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "VMPP ref",
        "name": "value",
        "doc": "The value" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Set the value of the protection_policy field" } ],
    "implicit": false }, 
  { "name": "copy_bios_strings",
    "description": "Copy the BIOS strings from the given host to this VM",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to modify" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host to copy the BIOS strings from" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Copy the BIOS strings from the given host to this VM" } ],
    "implicit": false }, 
  { "name": "set_bios_strings",
    "description": "Set custom BIOS strings to this VM. VM will be given a default set of BIOS strings, only some of which can be overridden by the supplied values. Allowed keys are: 'bios-vendor', 'bios-version', 'system-manufacturer', 'system-product-name', 'system-version', 'system-serial-number', 'enclosure-asset-tag', 'baseboard-manufacturer', 'baseboard-product-name', 'baseboard-version', 'baseboard-serial-number', 'baseboard-asset-tag', 'baseboard-location-in-chassis', 'enclosure-asset-tag'",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM to modify" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "The custom BIOS strings as a list of key-value pairs" } ],
    "errors": [ 
      { "name": "VM_BIOS_STRINGS_ALREADY_SET",
        "doc": "The BIOS strings for this VM have already been set and cannot be changed." }, 
      { "name": "INVALID_VALUE",
        "doc": "The value given is invalid" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "Set custom BIOS strings to this VM. VM will be given a default set of BIOS strings, only some of which can be overridden by the supplied values. Allowed keys are: 'bios-vendor', 'bios-version', 'system-manufacturer', 'system-product-name', 'system-version', 'system-serial-number', 'enclosure-asset-tag', 'baseboard-manufacturer', 'baseboard-product-name', 'baseboard-version', 'baseboard-serial-number', 'baseboard-asset-tag', 'baseboard-location-in-chassis', 'enclosure-asset-tag'" } ],
    "implicit": false }, 
  { "name": "retrieve_wlb_recommendations",
    "description": "Returns mapping of hosts to ratings, indicating the suitability of starting the VM at that location according to wlb. Rating is replaced with an error if the VM cannot boot there.",
    "result": [ "(host ref -> string set) map", "The potential hosts and their corresponding recommendations or errors" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Returns mapping of hosts to ratings, indicating the suitability of starting the VM at that location according to wlb. Rating is replaced with an error if the VM cannot boot there." } ],
    "implicit": false }, 
  { "name": "assert_agile",
    "description": "Returns an error if the VM is not considered agile e.g. because it is tied to a resource local to a host",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Returns an error if the VM is not considered agile e.g. because it is tied to a resource local to a host" } ],
    "implicit": false }, 
  { "name": "create_new_blob",
    "description": "Create a placeholder for a named binary blob of data that is associated with this VM",
    "result": [ "blob ref", "The reference of the blob, needed for populating its data" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM" }, 
      { "type": "string",
        "name": "name",
        "doc": "The name associated with the blob" }, 
      { "type": "string",
        "name": "mime_type",
        "doc": "The mime type for the data. Empty string translates to application/octet-stream" }, 
      { "type": "bool",
        "name": "public",
        "doc": "True if the blob should be publicly available" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Create a placeholder for a named binary blob of data that is associated with this VM" } ],
    "implicit": false }, 
  { "name": "assert_can_boot_here",
    "description": "Returns an error if the VM could not boot on this host for some reason",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" } ],
    "errors": [ 
      { "name": "HOST_NOT_ENOUGH_FREE_MEMORY",
        "doc": "Not enough server memory is available to perform this operation." }, 
      { "name": "VM_REQUIRES_SR",
        "doc": "You attempted to run a VM on a host which doesn't have access to an SR needed by the VM. The VM has at least one VBD attached to a VDI in the SR." }, 
      { "name": "VM_HOST_INCOMPATIBLE_VERSION",
        "doc": "This VM operation cannot be performed on an older-versioned host during an upgrade." }, 
      { "name": "VM_HOST_INCOMPATIBLE_VIRTUAL_HARDWARE_PLATFORM_VERSION",
        "doc": "You attempted to run a VM on a host that cannot provide the VM's required Virtual Hardware Platform version." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Returns an error if the VM could not boot on this host for some reason" } ],
    "implicit": false }, 
  { "name": "get_possible_hosts",
    "description": "Return the list of hosts on which this VM may run.",
    "result": [ "host ref set", "The possible hosts" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Return the list of hosts on which this VM may run." } ],
    "implicit": false }, 
  { "name": "get_allowed_VIF_devices",
    "description": "Returns a list of the allowed values that a VIF device field can take",
    "result": [ "string set", "The allowed values" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to query" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Returns a list of the allowed values that a VIF device field can take" } ],
    "implicit": false }, 
  { "name": "get_allowed_VBD_devices",
    "description": "Returns a list of the allowed values that a VBD device field can take",
    "result": [ "string set", "The allowed values" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to query" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Returns a list of the allowed values that a VBD device field can take" } ],
    "implicit": false }, 
  { "name": "update_allowed_operations",
    "description": "Recomputes the list of acceptable operations",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Recomputes the list of acceptable operations" } ],
    "implicit": false }, 
  { "name": "assert_operation_valid",
    "description": "Check to see whether this operation is acceptable in the current state of the system, raising an error if the operation is invalid for some reason",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "enum vm_operations",
        "name": "op",
        "doc": "proposed operation" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Check to see whether this operation is acceptable in the current state of the system, raising an error if the operation is invalid for some reason" } ],
    "implicit": false }, 
  { "name": "forget_data_source_archives",
    "description": "Forget the recorded statistics related to the specified data source",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "string",
        "name": "data_source",
        "doc": "The data source whose archives are to be forgotten" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Forget the recorded statistics related to the specified data source" } ],
    "implicit": false }, 
  { "name": "query_data_source",
    "description": "Query the latest value of the specified data source",
    "result": [ "float", "The latest value, averaged over the last 5 seconds" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "string",
        "name": "data_source",
        "doc": "The data source to query" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Query the latest value of the specified data source" } ],
    "implicit": false }, 
  { "name": "record_data_source",
    "description": "Start recording the specified data source",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "string",
        "name": "data_source",
        "doc": "The data source to record" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Start recording the specified data source" } ],
    "implicit": false }, 
  { "name": "get_data_sources",
    "description": "",
    "result": [ "data_source record set", "A set of data sources" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM to interrogate" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "" } ],
    "implicit": false }, 
  { "name": "get_boot_record",
    "description": "Returns a record describing the VM's dynamic state, initialised when the VM boots and updated to reflect runtime configuration changes e.g. CPU hotplug",
    "result": [ "VM record", "A record describing the VM" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM whose boot-time state to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "" }, 
      { "transition": "deprecated",
        "release": "inverness",
        "description": "Use the current VM record/fields instead" } ],
    "implicit": false }, 
  { "name": "assert_can_migrate",
    "description": "Assert whether a VM can be migrated to the specified destination.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM" }, 
      { "type": "(string -> string) map",
        "name": "dest",
        "doc": "The result of a VM.migrate_receive call." }, 
      { "type": "bool",
        "name": "live",
        "doc": "Live migration" }, 
      { "type": "(VDI ref -> SR ref) map",
        "name": "vdi_map",
        "doc": "Map of source VDI to destination SR" }, 
      { "type": "(VIF ref -> network ref) map",
        "name": "vif_map",
        "doc": "Map of source VIF to destination network" }, 
      { "type": "(string -> string) map",
        "name": "options",
        "doc": "Other parameters" }, 
      { "type": "(VGPU ref -> GPU_group ref) map",
        "name": "vgpu_map",
        "doc": "Map of source vGPU to destination GPU group" } ],
    "errors": [ 
      { "name": "LICENCE_RESTRICTION",
        "doc": "This operation is not allowed because your license lacks a needed feature. Please contact your support representative." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Assert whether a VM can be migrated to the specified destination." } ],
    "implicit": false }, 
  { "name": "migrate_send",
    "description": "Migrate the VM to another host.  This can only be called when the specified VM is in the Running state.",
    "result": [ "VM ref", "The reference of the newly created VM in the destination pool" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM" }, 
      { "type": "(string -> string) map",
        "name": "dest",
        "doc": "The result of a Host.migrate_receive call." }, 
      { "type": "bool",
        "name": "live",
        "doc": "Live migration" }, 
      { "type": "(VDI ref -> SR ref) map",
        "name": "vdi_map",
        "doc": "Map of source VDI to destination SR" }, 
      { "type": "(VIF ref -> network ref) map",
        "name": "vif_map",
        "doc": "Map of source VIF to destination network" }, 
      { "type": "(string -> string) map",
        "name": "options",
        "doc": "Other parameters" }, 
      { "type": "(VGPU ref -> GPU_group ref) map",
        "name": "vgpu_map",
        "doc": "Map of source vGPU to destination GPU group" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "LICENCE_RESTRICTION",
        "doc": "This operation is not allowed because your license lacks a needed feature. Please contact your support representative." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Migrate the VM to another host.  This can only be called when the specified VM is in the Running state." } ],
    "implicit": false }, 
  { "name": "maximise_memory",
    "description": "Returns the maximum amount of guest memory which will fit, together with overheads, in the supplied amount of physical memory. If 'exact' is true then an exact calculation is performed using the VM's current settings. If 'exact' is false then a more conservative approximation is used",
    "result": [ "int", "The maximum possible static-max" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "int",
        "name": "total",
        "doc": "Total amount of physical RAM to fit within" }, 
      { "type": "bool",
        "name": "approximate",
        "doc": "If false the limit is calculated with the guest's current exact configuration. Otherwise a more approximate calculation is performed" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Returns the maximum amount of guest memory which will fit, together with overheads, in the supplied amount of physical memory. If 'exact' is true then an exact calculation is performed using the VM's current settings. If 'exact' is false then a more conservative approximation is used" } ],
    "implicit": false }, 
  { "name": "send_trigger",
    "description": "Send the named trigger to this VM.  This can only be called when the specified VM is in the Running state.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM" }, 
      { "type": "string",
        "name": "trigger",
        "doc": "The trigger to send" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." } ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Send the named trigger to this VM.  This can only be called when the specified VM is in the Running state." } ],
    "implicit": false }, 
  { "name": "send_sysrq",
    "description": "Send the given key as a sysrq to this VM.  The key is specified as a single character (a String of length 1).  This can only be called when the specified VM is in the Running state.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM" }, 
      { "type": "string",
        "name": "key",
        "doc": "The key to send" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." } ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Send the given key as a sysrq to this VM.  The key is specified as a single character (a String of length 1).  This can only be called when the specified VM is in the Running state." } ],
    "implicit": false }, 
  { "name": "set_VCPUs_at_startup",
    "description": "Set the number of startup VCPUs for a halted VM",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "int",
        "name": "value",
        "doc": "The new maximum number of VCPUs" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Set the number of startup VCPUs for a halted VM" } ],
    "implicit": false }, 
  { "name": "set_VCPUs_max",
    "description": "Set the maximum number of VCPUs for a halted VM",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "int",
        "name": "value",
        "doc": "The new maximum number of VCPUs" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Set the maximum number of VCPUs for a halted VM" } ],
    "implicit": false }, 
  { "name": "set_shadow_multiplier_live",
    "description": "Set the shadow memory multiplier on a running VM",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "float",
        "name": "multiplier",
        "doc": "The new shadow memory multiplier to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Set the shadow memory multiplier on a running VM" } ],
    "implicit": false }, 
  { "name": "set_HVM_shadow_multiplier",
    "description": "Set the shadow memory multiplier on a halted VM",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "float",
        "name": "value",
        "doc": "The new shadow memory multiplier to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Set the shadow memory multiplier on a halted VM" } ],
    "implicit": false }, 
  { "name": "get_cooperative",
    "description": "Return true if the VM is currently 'co-operative' i.e. is expected to reach a balloon target and actually has done",
    "result": [ "bool", "true if the VM is currently 'co-operative'; false otherwise" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Return true if the VM is currently 'co-operative' i.e. is expected to reach a balloon target and actually has done" }, 
      { "transition": "deprecated",
        "release": "tampa",
        "description": "" } ],
    "implicit": false }, 
  { "name": "wait_memory_target_live",
    "description": "Wait for a running VM to reach its current memory target",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Wait for a running VM to reach its current memory target" }, 
      { "transition": "deprecated",
        "release": "midnight-ride",
        "description": "" } ],
    "implicit": false }, 
  { "name": "set_memory_target_live",
    "description": "Set the memory target for a running VM",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "int",
        "name": "target",
        "doc": "The target in bytes" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Set the memory target for a running VM" }, 
      { "transition": "deprecated",
        "release": "midnight-ride",
        "description": "" } ],
    "implicit": false }, 
  { "name": "set_memory",
    "description": "Set the memory allocation of this VM. Sets all of memory_static_max, memory_dynamic_min, and memory_dynamic_max to the given value, and leaves memory_static_min untouched.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "int",
        "name": "value",
        "doc": "The new memory allocation (bytes)." } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Set the memory allocation of this VM. Sets all of memory_static_max, memory_dynamic_min, and memory_dynamic_max to the given value, and leaves memory_static_min untouched." } ],
    "implicit": false }, 
  { "name": "set_memory_limits",
    "description": "Set the memory limits of this VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "int",
        "name": "static_min",
        "doc": "The new value of memory_static_min." }, 
      { "type": "int",
        "name": "static_max",
        "doc": "The new value of memory_static_max." }, 
      { "type": "int",
        "name": "dynamic_min",
        "doc": "The new value of memory_dynamic_min." }, 
      { "type": "int",
        "name": "dynamic_max",
        "doc": "The new value of memory_dynamic_max." } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Set the memory limits of this VM." } ],
    "implicit": false }, 
  { "name": "set_memory_static_range",
    "description": "Set the static (ie boot-time) range of virtual memory that the VM is allowed to use.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "int",
        "name": "min",
        "doc": "The new minimum value" }, 
      { "type": "int",
        "name": "max",
        "doc": "The new maximum value" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Set the static (ie boot-time) range of virtual memory that the VM is allowed to use." } ],
    "implicit": false }, 
  { "name": "set_memory_static_min",
    "description": "Set the value of the memory_static_min field",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM to modify" }, 
      { "type": "int",
        "name": "value",
        "doc": "The new value of memory_static_min" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Set the value of the memory_static_min field" } ],
    "implicit": false }, 
  { "name": "set_memory_static_max",
    "description": "Set the value of the memory_static_max field",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM to modify" }, 
      { "type": "int",
        "name": "value",
        "doc": "The new value of memory_static_max" } ],
    "errors": [ 
      { "name": "HA_OPERATION_WOULD_BREAK_FAILOVER_PLAN",
        "doc": "This operation cannot be performed because it would invalidate VM failover planning such that the system would be unable to guarantee to restart protected VMs after a Host failure." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Set the value of the memory_static_max field" } ],
    "implicit": false }, 
  { "name": "set_memory_dynamic_range",
    "description": "Set the minimum and maximum amounts of physical memory the VM is allowed to use.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "int",
        "name": "min",
        "doc": "The new minimum value" }, 
      { "type": "int",
        "name": "max",
        "doc": "The new maximum value" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Set the minimum and maximum amounts of physical memory the VM is allowed to use." } ],
    "implicit": false }, 
  { "name": "set_memory_dynamic_min",
    "description": "Set the value of the memory_dynamic_min field",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM to modify" }, 
      { "type": "int",
        "name": "value",
        "doc": "The new value of memory_dynamic_min" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Set the value of the memory_dynamic_min field" } ],
    "implicit": false }, 
  { "name": "set_memory_dynamic_max",
    "description": "Set the value of the memory_dynamic_max field",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM to modify" }, 
      { "type": "int",
        "name": "value",
        "doc": "The new value of memory_dynamic_max" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Set the value of the memory_dynamic_max field" } ],
    "implicit": false }, 
  { "name": "compute_memory_overhead",
    "description": "Computes the virtualization memory overhead of a VM.",
    "result": [ "int", "the virtualization memory overhead of the VM." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM for which to compute the memory overhead" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Computes the virtualization memory overhead of a VM." } ],
    "implicit": false }, 
  { "name": "set_ha_always_run",
    "description": "Set the value of the ha_always_run",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "bool",
        "name": "value",
        "doc": "The value" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Set the value of the ha_always_run" }, 
      { "transition": "deprecated",
        "release": "boston",
        "description": "" } ],
    "implicit": false }, 
  { "name": "set_ha_restart_priority",
    "description": "Set the value of the ha_restart_priority field",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "string",
        "name": "value",
        "doc": "The value" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Set the value of the ha_restart_priority field" } ],
    "implicit": false }, 
  { "name": "remove_from_NVRAM",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "string",
        "name": "key",
        "doc": "The key" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "naples",
        "description": "" } ],
    "implicit": false }, 
  { "name": "add_to_NVRAM",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "string",
        "name": "key",
        "doc": "The key" }, 
      { "type": "string",
        "name": "value",
        "doc": "The value" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "naples",
        "description": "" } ],
    "implicit": false }, 
  { "name": "set_NVRAM",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "The value" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "naples",
        "description": "" } ],
    "implicit": false }, 
  { "name": "add_to_VCPUs_params_live",
    "description": "Add the given key-value pair to VM.VCPUs_params, and apply that value on the running VM",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "string",
        "name": "key",
        "doc": "The key" }, 
      { "type": "string",
        "name": "value",
        "doc": "The value" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Add the given key-value pair to VM.VCPUs_params, and apply that value on the running VM" } ],
    "implicit": false }, 
  { "name": "set_VCPUs_number_live",
    "description": "Set the number of VCPUs for a running VM",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "The VM" }, 
      { "type": "int",
        "name": "nvcpu",
        "doc": "The number of VCPUs" } ],
    "errors": [ 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "LICENCE_RESTRICTION",
        "doc": "This operation is not allowed because your license lacks a needed feature. Please contact your support representative." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Set the number of VCPUs for a running VM" }, 
      { "transition": "changed",
        "release": "ely",
        "description": "Unless the feature is explicitly enabled for every host in the pool, this fails with Api_errors.license_restriction." } ],
    "implicit": false }, 
  { "name": "pool_migrate",
    "description": "Migrate a VM to another Host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to migrate" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The target host" }, 
      { "type": "(string -> string) map",
        "name": "options",
        "doc": "Extra configuration operations" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "OTHER_OPERATION_IN_PROGRESS",
        "doc": "Another operation involving the object is currently in progress" }, 
      { "name": "VM_IS_TEMPLATE",
        "doc": "The operation attempted is not valid for a template VM" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "VM_MIGRATE_FAILED",
        "doc": "An error occurred during the migration process." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Migrate a VM to another Host." } ],
    "implicit": false }, 
  { "name": "resume_on",
    "description": "Awaken the specified VM and resume it on a particular Host.  This can only be called when the specified VM is in the Suspended state.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to resume" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The Host on which to resume the VM" }, 
      { "type": "bool",
        "name": "start_paused",
        "doc": "Resume VM in paused state if set to true." }, 
      { "type": "bool",
        "name": "force",
        "doc": "Attempt to force the VM to resume. If this flag is false then the VM may fail pre-resume safety checks (e.g. if the CPU the VM was running on looks substantially different to the current one)" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "VM_IS_TEMPLATE",
        "doc": "The operation attempted is not valid for a template VM" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Awaken the specified VM and resume it on a particular Host.  This can only be called when the specified VM is in the Suspended state." } ],
    "implicit": false }, 
  { "name": "resume",
    "description": "Awaken the specified VM and resume it.  This can only be called when the specified VM is in the Suspended state.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to resume" }, 
      { "type": "bool",
        "name": "start_paused",
        "doc": "Resume VM in paused state if set to true." }, 
      { "type": "bool",
        "name": "force",
        "doc": "Attempt to force the VM to resume. If this flag is false then the VM may fail pre-resume safety checks (e.g. if the CPU the VM was running on looks substantially different to the current one)" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "VM_IS_TEMPLATE",
        "doc": "The operation attempted is not valid for a template VM" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Awaken the specified VM and resume it.  This can only be called when the specified VM is in the Suspended state." } ],
    "implicit": false }, 
  { "name": "suspend",
    "description": "Suspend the specified VM to disk.  This can only be called when the specified VM is in the Running state.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to suspend" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "OTHER_OPERATION_IN_PROGRESS",
        "doc": "Another operation involving the object is currently in progress" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "VM_IS_TEMPLATE",
        "doc": "The operation attempted is not valid for a template VM" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Suspend the specified VM to disk.  This can only be called when the specified VM is in the Running state." } ],
    "implicit": false }, 
  { "name": "hard_reboot",
    "description": "Stop executing the specified VM without attempting a clean shutdown and immediately restart the VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to reboot" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "OTHER_OPERATION_IN_PROGRESS",
        "doc": "Another operation involving the object is currently in progress" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "VM_IS_TEMPLATE",
        "doc": "The operation attempted is not valid for a template VM" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Stop executing the specified VM without attempting a clean shutdown and immediately restart the VM." } ],
    "implicit": false }, 
  { "name": "power_state_reset",
    "description": "Reset the power-state of the VM to halted in the database only. (Used to recover from slave failures in pooling scenarios by resetting the power-states of VMs running on dead slaves to halted.) This is a potentially dangerous operation; use with care.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to reset" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Reset the power-state of the VM to halted in the database only. (Used to recover from slave failures in pooling scenarios by resetting the power-states of VMs running on dead slaves to halted.) This is a potentially dangerous operation; use with care." } ],
    "implicit": false }, 
  { "name": "hard_shutdown",
    "description": "Stop executing the specified VM without attempting a clean shutdown.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to destroy" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "OTHER_OPERATION_IN_PROGRESS",
        "doc": "Another operation involving the object is currently in progress" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "VM_IS_TEMPLATE",
        "doc": "The operation attempted is not valid for a template VM" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Stop executing the specified VM without attempting a clean shutdown." } ],
    "implicit": false }, 
  { "name": "clean_reboot",
    "description": "Attempt to cleanly shutdown the specified VM (Note: this may not be supported---e.g. if a guest agent is not installed). This can only be called when the specified VM is in the Running state.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to shutdown" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "OTHER_OPERATION_IN_PROGRESS",
        "doc": "Another operation involving the object is currently in progress" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "VM_IS_TEMPLATE",
        "doc": "The operation attempted is not valid for a template VM" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Attempt to cleanly shutdown the specified VM (Note: this may not be supported---e.g. if a guest agent is not installed). This can only be called when the specified VM is in the Running state." } ],
    "implicit": false }, 
  { "name": "shutdown",
    "description": "Attempts to first clean shutdown a VM and if it should fail then perform a hard shutdown on it.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to shutdown" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "OTHER_OPERATION_IN_PROGRESS",
        "doc": "Another operation involving the object is currently in progress" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "VM_IS_TEMPLATE",
        "doc": "The operation attempted is not valid for a template VM" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "clearwater",
        "description": "Attempts to first clean shutdown a VM and if it should fail then perform a hard shutdown on it." } ],
    "implicit": false }, 
  { "name": "clean_shutdown",
    "description": "Attempt to cleanly shutdown the specified VM. (Note: this may not be supported---e.g. if a guest agent is not installed). This can only be called when the specified VM is in the Running state.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to shutdown" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "OTHER_OPERATION_IN_PROGRESS",
        "doc": "Another operation involving the object is currently in progress" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "VM_IS_TEMPLATE",
        "doc": "The operation attempted is not valid for a template VM" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Attempt to cleanly shutdown the specified VM. (Note: this may not be supported---e.g. if a guest agent is not installed). This can only be called when the specified VM is in the Running state." } ],
    "implicit": false }, 
  { "name": "unpause",
    "description": "Resume the specified VM. This can only be called when the specified VM is in the Paused state.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to unpause" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "VM_IS_TEMPLATE",
        "doc": "The operation attempted is not valid for a template VM" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Resume the specified VM. This can only be called when the specified VM is in the Paused state." } ],
    "implicit": false }, 
  { "name": "pause",
    "description": "Pause the specified VM. This can only be called when the specified VM is in the Running state.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to pause" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "OTHER_OPERATION_IN_PROGRESS",
        "doc": "Another operation involving the object is currently in progress" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "VM_IS_TEMPLATE",
        "doc": "The operation attempted is not valid for a template VM" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Pause the specified VM. This can only be called when the specified VM is in the Running state." } ],
    "implicit": false }, 
  { "name": "start_on",
    "description": "Start the specified VM on a particular host.  This function can only be called with the VM is in the Halted State.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to start" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The Host on which to start the VM" }, 
      { "type": "bool",
        "name": "start_paused",
        "doc": "Instantiate VM in paused state if set to true." }, 
      { "type": "bool",
        "name": "force",
        "doc": "Attempt to force the VM to start. If this flag is false then the VM may fail pre-boot safety checks (e.g. if the CPU the VM last booted on looks substantially different to the current one)" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "VM_IS_TEMPLATE",
        "doc": "The operation attempted is not valid for a template VM" }, 
      { "name": "OTHER_OPERATION_IN_PROGRESS",
        "doc": "Another operation involving the object is currently in progress" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "BOOTLOADER_FAILED",
        "doc": "The bootloader returned an error" }, 
      { "name": "UNKNOWN_BOOTLOADER",
        "doc": "The requested bootloader is unknown" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Start the specified VM on a particular host.  This function can only be called with the VM is in the Halted State." } ],
    "implicit": false }, 
  { "name": "start",
    "description": "Start the specified VM.  This function can only be called with the VM is in the Halted State.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to start" }, 
      { "type": "bool",
        "name": "start_paused",
        "doc": "Instantiate VM in paused state if set to true." }, 
      { "type": "bool",
        "name": "force",
        "doc": "Attempt to force the VM to start. If this flag is false then the VM may fail pre-boot safety checks (e.g. if the CPU the VM last booted on looks substantially different to the current one)" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "VM_HVM_REQUIRED",
        "doc": "HVM is required for this operation" }, 
      { "name": "VM_IS_TEMPLATE",
        "doc": "The operation attempted is not valid for a template VM" }, 
      { "name": "OTHER_OPERATION_IN_PROGRESS",
        "doc": "Another operation involving the object is currently in progress" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "BOOTLOADER_FAILED",
        "doc": "The bootloader returned an error" }, 
      { "name": "UNKNOWN_BOOTLOADER",
        "doc": "The requested bootloader is unknown" }, 
      { "name": "NO_HOSTS_AVAILABLE",
        "doc": "There were no servers available to complete the specified operation." }, 
      { "name": "LICENCE_RESTRICTION",
        "doc": "This operation is not allowed because your license lacks a needed feature. Please contact your support representative." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Start the specified VM.  This function can only be called with the VM is in the Halted State." } ],
    "implicit": false }, 
  { "name": "provision",
    "description": "Inspects the disk configuration contained within the VM's other_config, creates VDIs and VBDs and then executes any applicable post-install script.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to be provisioned" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "SR_FULL",
        "doc": "The SR is full. Requested new size exceeds the maximum size" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "LICENCE_RESTRICTION",
        "doc": "This operation is not allowed because your license lacks a needed feature. Please contact your support representative." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Inspects the disk configuration contained within the VM's other_config, creates VDIs and VBDs and then executes any applicable post-install script." } ],
    "implicit": false }, 
  { "name": "checkpoint",
    "description": "Checkpoints the specified VM, making a new VM. Checkpoint automatically exploits the capabilities of the underlying storage repository in which the VM's disk images are stored (e.g. Copy on Write) and saves the memory image as well.",
    "result": [ "VM ref", "The reference of the newly created VM." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to be checkpointed" }, 
      { "type": "string",
        "name": "new_name",
        "doc": "The name of the checkpointed VM" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "SR_FULL",
        "doc": "The SR is full. Requested new size exceeds the maximum size" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "VM_CHECKPOINT_SUSPEND_FAILED",
        "doc": "An error occured while saving the memory image of the specified virtual machine" }, 
      { "name": "VM_CHECKPOINT_RESUME_FAILED",
        "doc": "An error occured while restoring the memory image of the specified virtual machine" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Checkpoints the specified VM, making a new VM. Checkpoint automatically exploits the capabilities of the underlying storage repository in which the VM's disk images are stored (e.g. Copy on Write) and saves the memory image as well." } ],
    "implicit": false }, 
  { "name": "revert",
    "description": "Reverts the specified VM to a previous state.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "snapshot",
        "doc": "The snapshotted state that we revert to" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "SR_FULL",
        "doc": "The SR is full. Requested new size exceeds the maximum size" }, 
      { "name": "VM_REVERT_FAILED",
        "doc": "An error occured while reverting the specified virtual machine to the specified snapshot" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "snapshots",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Reverts the specified VM to a previous state." } ],
    "implicit": false }, 
  { "name": "copy",
    "description": "Copied the specified VM, making a new VM. Unlike clone, copy does not exploits the capabilities of the underlying storage repository in which the VM's disk images are stored. Instead, copy guarantees that the disk images of the newly created VM will be 'full disks' - i.e. not part of a CoW chain.  This function can only be called when the VM is in the Halted State.",
    "result": [ "VM ref", "The reference of the newly created VM." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to be copied" }, 
      { "type": "string",
        "name": "new_name",
        "doc": "The name of the copied VM" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "An SR to copy all the VM's disks into (if an invalid reference then it uses the existing SRs)" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "SR_FULL",
        "doc": "The SR is full. Requested new size exceeds the maximum size" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "LICENCE_RESTRICTION",
        "doc": "This operation is not allowed because your license lacks a needed feature. Please contact your support representative." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Copies a VM to an SR. There must be a host that can see both the source and destination SRs simultaneously" }, 
      { "transition": "extended",
        "release": "cowley",
        "description": "The copy can now be performed between any two SRs." } ],
    "implicit": false }, 
  { "name": "clone",
    "description": "Clones the specified VM, making a new VM. Clone automatically exploits the capabilities of the underlying storage repository in which the VM's disk images are stored (e.g. Copy on Write).   This function can only be called when the VM is in the Halted State.",
    "result": [ "VM ref", "The reference of the newly created VM." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to be cloned" }, 
      { "type": "string",
        "name": "new_name",
        "doc": "The name of the cloned VM" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "SR_FULL",
        "doc": "The SR is full. Requested new size exceeds the maximum size" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "LICENCE_RESTRICTION",
        "doc": "This operation is not allowed because your license lacks a needed feature. Please contact your support representative." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Clones the specified VM, making a new VM. Clone automatically exploits the capabilities of the underlying storage repository in which the VM's disk images are stored (e.g. Copy on Write).   This function can only be called when the VM is in the Halted State." } ],
    "implicit": false }, 
  { "name": "snapshot_with_quiesce",
    "description": "Snapshots the specified VM with quiesce, making a new VM. Snapshot automatically exploits the capabilities of the underlying storage repository in which the VM's disk images are stored (e.g. Copy on Write).",
    "result": [ "VM ref", "The reference of the newly created VM." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to be snapshotted" }, 
      { "type": "string",
        "name": "new_name",
        "doc": "The name of the snapshotted VM" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "SR_FULL",
        "doc": "The SR is full. Requested new size exceeds the maximum size" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "VM_SNAPSHOT_WITH_QUIESCE_FAILED",
        "doc": "The quiesced-snapshot operation failed for an unexpected reason" }, 
      { "name": "VM_SNAPSHOT_WITH_QUIESCE_TIMEOUT",
        "doc": "The VSS plug-in has timed out" }, 
      { "name": "VM_SNAPSHOT_WITH_QUIESCE_PLUGIN_DEOS_NOT_RESPOND",
        "doc": "The VSS plug-in cannot be contacted" }, 
      { "name": "VM_SNAPSHOT_WITH_QUIESCE_NOT_SUPPORTED",
        "doc": "The VSS plug-in is not installed on this virtual machine" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Snapshots the specified VM with quiesce, making a new VM. Snapshot automatically exploits the capabilities of the underlying storage repository in which the VM's disk images are stored (e.g. Copy on Write)." } ],
    "implicit": false }, 
  { "name": "snapshot",
    "description": "Snapshots the specified VM, making a new VM. Snapshot automatically exploits the capabilities of the underlying storage repository in which the VM's disk images are stored (e.g. Copy on Write).",
    "result": [ "VM ref", "The reference of the newly created VM." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "vm",
        "doc": "The VM to be snapshotted" }, 
      { "type": "string",
        "name": "new_name",
        "doc": "The name of the snapshotted VM" } ],
    "errors": [ 
      { "name": "VM_BAD_POWER_STATE",
        "doc": "You attempted an operation on a VM that was not in an appropriate power state at the time; for example, you attempted to start a VM that was already running. The parameters returned are the VM's handle, and the expected and actual VM state at the time of the call." }, 
      { "name": "SR_FULL",
        "doc": "The SR is full. Requested new size exceeds the maximum size" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "snapshots",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Snapshots the specified VM, making a new VM. Snapshot automatically exploits the capabilities of the underlying storage repository in which the VM's disk images are stored (e.g. Copy on Write)." } ],
    "implicit": false }, 
  { "name": "set_hardware_platform_version",
    "description": "Set the hardware_platform_version field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "int",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cream",
        "description": "The host virtual hardware platform version the VM can run on" } ],
    "implicit": true }, 
  { "name": "set_suspend_SR",
    "description": "Set the suspend_SR field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "SR ref",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "The SR on which a suspend image is stored" } ],
    "implicit": true }, 
  { "name": "remove_from_blocked_operations",
    "description": "Remove the given key and its corresponding value from the blocked_operations field of the given VM.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "enum vm_operations",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "List of operations which have been explicitly blocked and an error code" } ],
    "implicit": true }, 
  { "name": "add_to_blocked_operations",
    "description": "Add the given key-value pair to the blocked_operations field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "enum vm_operations",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "List of operations which have been explicitly blocked and an error code" } ],
    "implicit": true }, 
  { "name": "set_blocked_operations",
    "description": "Set the blocked_operations field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(enum vm_operations -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "List of operations which have been explicitly blocked and an error code" } ],
    "implicit": true }, 
  { "name": "remove_tags",
    "description": "Remove the given value from the tags field of the given VM.  If the value is not in that Set, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "add_tags",
    "description": "Add the given value to the tags field of the given VM.  If the value is already in that Set, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "set_tags",
    "description": "Set the tags field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string set",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "remove_from_xenstore_data",
    "description": "Remove the given key and its corresponding value from the xenstore_data field of the given VM.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "data to be inserted into the xenstore tree (/local/domain/<domid>/vm-data) after the VM is created." } ],
    "implicit": true }, 
  { "name": "add_to_xenstore_data",
    "description": "Add the given key-value pair to the xenstore_data field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "data to be inserted into the xenstore tree (/local/domain/<domid>/vm-data) after the VM is created." } ],
    "implicit": true }, 
  { "name": "set_xenstore_data",
    "description": "Set the xenstore_data field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "data to be inserted into the xenstore tree (/local/domain/<domid>/vm-data) after the VM is created." } ],
    "implicit": true }, 
  { "name": "set_recommendations",
    "description": "Set the recommendations field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "An XML specification of recommended values and ranges for properties of this VM" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given VM.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_PCI_bus",
    "description": "Set the PCI_bus field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "PCI bus path for pass-through devices" }, 
      { "transition": "deprecated",
        "release": "boston",
        "description": "Field was never used" } ],
    "implicit": true }, 
  { "name": "remove_from_platform",
    "description": "Remove the given key and its corresponding value from the platform field of the given VM.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "platform-specific configuration" } ],
    "implicit": true }, 
  { "name": "add_to_platform",
    "description": "Add the given key-value pair to the platform field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "platform-specific configuration" } ],
    "implicit": true }, 
  { "name": "set_platform",
    "description": "Set the platform field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "platform-specific configuration" } ],
    "implicit": true }, 
  { "name": "remove_from_HVM_boot_params",
    "description": "Remove the given key and its corresponding value from the HVM/boot_params field of the given VM.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "HVM boot params" } ],
    "implicit": true }, 
  { "name": "add_to_HVM_boot_params",
    "description": "Add the given key-value pair to the HVM/boot_params field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "HVM boot params" } ],
    "implicit": true }, 
  { "name": "set_HVM_boot_params",
    "description": "Set the HVM/boot_params field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "HVM boot params" } ],
    "implicit": true }, 
  { "name": "set_PV_legacy_args",
    "description": "Set the PV/legacy_args field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "to make Zurich guests boot" } ],
    "implicit": true }, 
  { "name": "set_PV_bootloader_args",
    "description": "Set the PV/bootloader_args field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "miscellaneous arguments for the bootloader" } ],
    "implicit": true }, 
  { "name": "set_PV_args",
    "description": "Set the PV/args field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "kernel command-line arguments" } ],
    "implicit": true }, 
  { "name": "set_PV_ramdisk",
    "description": "Set the PV/ramdisk field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "path to the initrd" } ],
    "implicit": true }, 
  { "name": "set_PV_kernel",
    "description": "Set the PV/kernel field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "path to the kernel" } ],
    "implicit": true }, 
  { "name": "set_PV_bootloader",
    "description": "Set the PV/bootloader field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "name of or path to bootloader" } ],
    "implicit": true }, 
  { "name": "set_actions_after_reboot",
    "description": "Set the actions/after_reboot field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "enum on_normal_exit",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "action to take after the guest has rebooted itself" } ],
    "implicit": true }, 
  { "name": "set_actions_after_shutdown",
    "description": "Set the actions/after_shutdown field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "enum on_normal_exit",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "action to take after the guest has shutdown itself" } ],
    "implicit": true }, 
  { "name": "remove_from_VCPUs_params",
    "description": "Remove the given key and its corresponding value from the VCPUs/params field of the given VM.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "configuration parameters for the selected VCPU policy" } ],
    "implicit": true }, 
  { "name": "add_to_VCPUs_params",
    "description": "Add the given key-value pair to the VCPUs/params field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "configuration parameters for the selected VCPU policy" } ],
    "implicit": true }, 
  { "name": "set_VCPUs_params",
    "description": "Set the VCPUs/params field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "configuration parameters for the selected VCPU policy" } ],
    "implicit": true }, 
  { "name": "set_affinity",
    "description": "Set the affinity field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "host ref",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A host which the VM has some affinity for (or NULL). This is used as a hint to the start call when it decides where to run the VM. Resource constraints may cause the VM to be started elsewhere." } ],
    "implicit": true }, 
  { "name": "set_is_a_template",
    "description": "Set the is_a_template field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "bool",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if this is a template. Template VMs can never be started, they are used only for cloning other VMs" } ],
    "implicit": true }, 
  { "name": "set_user_version",
    "description": "Set the user_version field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "int",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Creators of VMs and templates may store version information here." } ],
    "implicit": true }, 
  { "name": "set_name_description",
    "description": "Set the name/description field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "set_name_label",
    "description": "Set the name/label field of the given VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_NVRAM",
    "description": "Get the NVRAM field of the given VM.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "naples",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_domain_type",
    "description": "Get the domain_type field of the given VM.",
    "result": [ "enum domain_type", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "jura",
        "description": "Internal-only field; not yet in the public API" }, 
      { "transition": "published",
        "release": "kolkata",
        "description": "The field is now valid" } ],
    "implicit": true }, 
  { "name": "get_reference_label",
    "description": "Get the reference_label field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Textual reference to the template used to create a VM. This can be used by clients in need of an immutable reference to the template since the latter's uuid and name_label may change, for example, after a package installation or upgrade." } ],
    "implicit": true }, 
  { "name": "get_requires_reboot",
    "description": "Get the requires_reboot field of the given VM.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_has_vendor_device",
    "description": "Get the has_vendor_device field of the given VM.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_hardware_platform_version",
    "description": "Get the hardware_platform_version field of the given VM.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cream",
        "description": "The host virtual hardware platform version the VM can run on" } ],
    "implicit": true }, 
  { "name": "get_generation_id",
    "description": "Get the generation_id field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "clearwater",
        "description": "Generation ID of the VM" } ],
    "implicit": true }, 
  { "name": "get_version",
    "description": "Get the version field of the given VM.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "The number of times this VM has been recovered" } ],
    "implicit": true }, 
  { "name": "get_suspend_SR",
    "description": "Get the suspend_SR field of the given VM.",
    "result": [ "SR ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "The SR on which a suspend image is stored" } ],
    "implicit": true }, 
  { "name": "get_attached_PCIs",
    "description": "Get the attached_PCIs field of the given VM.",
    "result": [ "PCI ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_VGPUs",
    "description": "Get the VGPUs field of the given VM.",
    "result": [ "VGPU ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_order",
    "description": "Get the order field of the given VM.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "The point in the startup or shutdown sequence at which this VM will be started" } ],
    "implicit": true }, 
  { "name": "get_shutdown_delay",
    "description": "Get the shutdown_delay field of the given VM.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "The delay to wait before proceeding to the next order in the shutdown sequence (seconds)" } ],
    "implicit": true }, 
  { "name": "get_start_delay",
    "description": "Get the start_delay field of the given VM.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "The delay to wait before proceeding to the next order in the startup sequence (seconds)" } ],
    "implicit": true }, 
  { "name": "get_appliance",
    "description": "Get the appliance field of the given VM.",
    "result": [ "VM_appliance ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the appliance to which this VM belongs" } ],
    "implicit": true }, 
  { "name": "get_is_vmss_snapshot",
    "description": "Get the is_vmss_snapshot field of the given VM.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "true if this snapshot was created by the snapshot schedule" } ],
    "implicit": true }, 
  { "name": "get_snapshot_schedule",
    "description": "Get the snapshot_schedule field of the given VM.",
    "result": [ "VMSS ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "Ref pointing to a snapshot schedule for this VM" } ],
    "implicit": true }, 
  { "name": "get_is_snapshot_from_vmpp",
    "description": "Get the is_snapshot_from_vmpp field of the given VM.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "deprecated",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_protection_policy",
    "description": "Get the protection_policy field of the given VM.",
    "result": [ "VMPP ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "deprecated",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_bios_strings",
    "description": "Get the bios_strings field of the given VM.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "BIOS strings" } ],
    "implicit": true }, 
  { "name": "get_children",
    "description": "Get the children field of the given VM.",
    "result": [ "VM ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "List pointing to all the children of this VM" } ],
    "implicit": true }, 
  { "name": "get_parent",
    "description": "Get the parent field of the given VM.",
    "result": [ "VM ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Ref pointing to the parent of this VM" } ],
    "implicit": true }, 
  { "name": "get_snapshot_metadata",
    "description": "Get the snapshot_metadata field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Encoded information about the VM's metadata this is a snapshot of" } ],
    "implicit": true }, 
  { "name": "get_snapshot_info",
    "description": "Get the snapshot_info field of the given VM.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Human-readable information concerning this snapshot" } ],
    "implicit": true }, 
  { "name": "get_blocked_operations",
    "description": "Get the blocked_operations field of the given VM.",
    "result": [ "(enum vm_operations -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "List of operations which have been explicitly blocked and an error code" } ],
    "implicit": true }, 
  { "name": "get_tags",
    "description": "Get the tags field of the given VM.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "get_blobs",
    "description": "Get the blobs field of the given VM.",
    "result": [ "(string -> blob ref) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Binary blobs associated with this VM" } ],
    "implicit": true }, 
  { "name": "get_transportable_snapshot_id",
    "description": "Get the transportable_snapshot_id field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Transportable ID of the snapshot VM" } ],
    "implicit": true }, 
  { "name": "get_snapshot_time",
    "description": "Get the snapshot_time field of the given VM.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Date/time when this snapshot was created." } ],
    "implicit": true }, 
  { "name": "get_snapshots",
    "description": "Get the snapshots field of the given VM.",
    "result": [ "VM ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "List pointing to all the VM snapshots." } ],
    "implicit": true }, 
  { "name": "get_snapshot_of",
    "description": "Get the snapshot_of field of the given VM.",
    "result": [ "VM ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Ref pointing to the VM this snapshot is of." } ],
    "implicit": true }, 
  { "name": "get_is_a_snapshot",
    "description": "Get the is_a_snapshot field of the given VM.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "true if this is a snapshot. Snapshotted VMs can never be started, they are used only for cloning other VMs" } ],
    "implicit": true }, 
  { "name": "get_ha_restart_priority",
    "description": "Get the ha_restart_priority field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "has possible values: \"best-effort\" meaning \"try to restart this VM if possible but don't consider the Pool to be overcommitted if this is not possible\"; \"restart\" meaning \"this VM should be restarted\"; \"\" meaning \"do not try to restart this VM\"" } ],
    "implicit": true }, 
  { "name": "get_ha_always_run",
    "description": "Get the ha_always_run field of the given VM.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "if true then the system will attempt to keep the VM running as much as possible." }, 
      { "transition": "deprecated",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_xenstore_data",
    "description": "Get the xenstore_data field of the given VM.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "data to be inserted into the xenstore tree (/local/domain/<domid>/vm-data) after the VM is created." } ],
    "implicit": true }, 
  { "name": "get_recommendations",
    "description": "Get the recommendations field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "An XML specification of recommended values and ranges for properties of this VM" } ],
    "implicit": true }, 
  { "name": "get_last_booted_record",
    "description": "Get the last_booted_record field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "marshalled value containing VM record at time of last boot, updated dynamically to reflect the runtime state of the domain" } ],
    "implicit": true }, 
  { "name": "get_guest_metrics",
    "description": "Get the guest_metrics field of the given VM.",
    "result": [ "VM_guest_metrics ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "metrics associated with the running guest" } ],
    "implicit": true }, 
  { "name": "get_metrics",
    "description": "Get the metrics field of the given VM.",
    "result": [ "VM_metrics ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "metrics associated with this VM" } ],
    "implicit": true }, 
  { "name": "get_is_control_domain",
    "description": "Get the is_control_domain field of the given VM.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if this is a control domain (domain 0 or a driver domain)" } ],
    "implicit": true }, 
  { "name": "get_last_boot_CPU_flags",
    "description": "Get the last_boot_CPU_flags field of the given VM.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "describes the CPU flags on which the VM was last booted" } ],
    "implicit": true }, 
  { "name": "get_domarch",
    "description": "Get the domarch field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Domain architecture (if available, null string otherwise)" } ],
    "implicit": true }, 
  { "name": "get_domid",
    "description": "Get the domid field of the given VM.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "domain ID (if available, -1 otherwise)" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given VM.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_PCI_bus",
    "description": "Get the PCI_bus field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "PCI bus path for pass-through devices" }, 
      { "transition": "deprecated",
        "release": "boston",
        "description": "Field was never used" } ],
    "implicit": true }, 
  { "name": "get_platform",
    "description": "Get the platform field of the given VM.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "platform-specific configuration" } ],
    "implicit": true }, 
  { "name": "get_HVM_shadow_multiplier",
    "description": "Get the HVM/shadow_multiplier field of the given VM.",
    "result": [ "float", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "multiplier applied to the amount of shadow that will be made available to the guest" } ],
    "implicit": true }, 
  { "name": "get_HVM_boot_params",
    "description": "Get the HVM/boot_params field of the given VM.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "HVM boot params" } ],
    "implicit": true }, 
  { "name": "get_HVM_boot_policy",
    "description": "Get the HVM/boot_policy field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "" }, 
      { "transition": "deprecated",
        "release": "kolkata",
        "description": "Replaced by VM.domain_type" } ],
    "implicit": true }, 
  { "name": "get_PV_legacy_args",
    "description": "Get the PV/legacy_args field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "to make Zurich guests boot" } ],
    "implicit": true }, 
  { "name": "get_PV_bootloader_args",
    "description": "Get the PV/bootloader_args field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "miscellaneous arguments for the bootloader" } ],
    "implicit": true }, 
  { "name": "get_PV_args",
    "description": "Get the PV/args field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "kernel command-line arguments" } ],
    "implicit": true }, 
  { "name": "get_PV_ramdisk",
    "description": "Get the PV/ramdisk field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "path to the initrd" } ],
    "implicit": true }, 
  { "name": "get_PV_kernel",
    "description": "Get the PV/kernel field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "path to the kernel" } ],
    "implicit": true }, 
  { "name": "get_PV_bootloader",
    "description": "Get the PV/bootloader field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "name of or path to bootloader" } ],
    "implicit": true }, 
  { "name": "get_VTPMs",
    "description": "Get the VTPMs field of the given VM.",
    "result": [ "VTPM ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "virtual TPMs" } ],
    "implicit": true }, 
  { "name": "get_crash_dumps",
    "description": "Get the crash_dumps field of the given VM.",
    "result": [ "crashdump ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "crash dumps associated with this VM" } ],
    "implicit": true }, 
  { "name": "get_VUSBs",
    "description": "Get the VUSBs field of the given VM.",
    "result": [ "VUSB ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "vitual usb devices" } ],
    "implicit": true }, 
  { "name": "get_VBDs",
    "description": "Get the VBDs field of the given VM.",
    "result": [ "VBD ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "virtual block devices" } ],
    "implicit": true }, 
  { "name": "get_VIFs",
    "description": "Get the VIFs field of the given VM.",
    "result": [ "VIF ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "virtual network interfaces" } ],
    "implicit": true }, 
  { "name": "get_consoles",
    "description": "Get the consoles field of the given VM.",
    "result": [ "console ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "virtual console devices" } ],
    "implicit": true }, 
  { "name": "get_actions_after_crash",
    "description": "Get the actions/after_crash field of the given VM.",
    "result": [ "enum on_crash_behaviour", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "action to take if the guest crashes" } ],
    "implicit": true }, 
  { "name": "get_actions_after_reboot",
    "description": "Get the actions/after_reboot field of the given VM.",
    "result": [ "enum on_normal_exit", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "action to take after the guest has rebooted itself" } ],
    "implicit": true }, 
  { "name": "get_actions_after_shutdown",
    "description": "Get the actions/after_shutdown field of the given VM.",
    "result": [ "enum on_normal_exit", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "action to take after the guest has shutdown itself" } ],
    "implicit": true }, 
  { "name": "get_VCPUs_at_startup",
    "description": "Get the VCPUs/at_startup field of the given VM.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Boot number of VCPUs" } ],
    "implicit": true }, 
  { "name": "get_VCPUs_max",
    "description": "Get the VCPUs/max field of the given VM.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Max number of VCPUs" } ],
    "implicit": true }, 
  { "name": "get_VCPUs_params",
    "description": "Get the VCPUs/params field of the given VM.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "configuration parameters for the selected VCPU policy" } ],
    "implicit": true }, 
  { "name": "get_memory_static_min",
    "description": "Get the memory/static_min field of the given VM.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Statically-set (i.e. absolute) mininum (bytes). The value of this field indicates the least amount of memory this VM can boot with without crashing." } ],
    "implicit": true }, 
  { "name": "get_memory_dynamic_min",
    "description": "Get the memory/dynamic_min field of the given VM.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Dynamic minimum (bytes)" } ],
    "implicit": true }, 
  { "name": "get_memory_dynamic_max",
    "description": "Get the memory/dynamic_max field of the given VM.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Dynamic maximum (bytes)" } ],
    "implicit": true }, 
  { "name": "get_memory_static_max",
    "description": "Get the memory/static_max field of the given VM.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Statically-set (i.e. absolute) maximum (bytes). The value of this field at VM start time acts as a hard limit of the amount of memory a guest can use. New values only take effect on reboot." } ],
    "implicit": true }, 
  { "name": "get_memory_target",
    "description": "Get the memory/target field of the given VM.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Dynamically-set memory target (bytes). The value of this field indicates the current target for memory available to this VM." }, 
      { "transition": "deprecated",
        "release": "midnight-ride",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_memory_overhead",
    "description": "Get the memory/overhead field of the given VM.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Virtualization memory overhead (bytes)." } ],
    "implicit": true }, 
  { "name": "get_affinity",
    "description": "Get the affinity field of the given VM.",
    "result": [ "host ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A host which the VM has some affinity for (or NULL). This is used as a hint to the start call when it decides where to run the VM. Resource constraints may cause the VM to be started elsewhere." } ],
    "implicit": true }, 
  { "name": "get_resident_on",
    "description": "Get the resident_on field of the given VM.",
    "result": [ "host ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the host the VM is currently resident on" } ],
    "implicit": true }, 
  { "name": "get_suspend_VDI",
    "description": "Get the suspend_VDI field of the given VM.",
    "result": [ "VDI ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The VDI that a suspend image is stored on. (Only has meaning if VM is currently suspended)" } ],
    "implicit": true }, 
  { "name": "get_is_default_template",
    "description": "Get the is_default_template field of the given VM.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "Identifies default templates" } ],
    "implicit": true }, 
  { "name": "get_is_a_template",
    "description": "Get the is_a_template field of the given VM.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if this is a template. Template VMs can never be started, they are used only for cloning other VMs" } ],
    "implicit": true }, 
  { "name": "get_user_version",
    "description": "Get the user_version field of the given VM.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Creators of VMs and templates may store version information here." } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_power_state",
    "description": "Get the power_state field of the given VM.",
    "result": [ "enum vm_power_state", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Current power state of the machine" } ],
    "implicit": true }, 
  { "name": "get_current_operations",
    "description": "Get the current_operations field of the given VM.",
    "result": [ "(string -> enum vm_operations) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "implicit": true }, 
  { "name": "get_allowed_operations",
    "description": "Get the allowed_operations field of the given VM.",
    "result": [ "enum vm_operations set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given VM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the VM instances with the given label.",
    "result": [ "VM ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy the specified VM.  The VM is completely removed from the system.  This function can only be called when the VM is in the Halted State.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "" } ],
    "implicit": true }, 
  { "name": "create",
    "description": "NOT RECOMMENDED! VM.clone or VM.copy (or VM.import) is a better choice in almost all situations. The standard way to obtain a new VM is to call VM.clone on a template VM, then call VM.provision on the new clone. Caution: if VM.create is used and then the new VM is attached to a virtual disc that has an operating system already installed, then there is no guarantee that the operating system will boot and run. Any software that calls VM.create on a future version of this API may fail or give unexpected results. For example this could happen if an additional parameter were added to VM.create. VM.create is intended only for use in the automatic creation of the system VM templates. It creates a new VM instance, and returns its handle.\nThe constructor args are: name_label, name_description, user_version*, is_a_template*, affinity*, memory_target, memory_static_max*, memory_dynamic_max*, memory_dynamic_min*, memory_static_min*, VCPUs_params*, VCPUs_max*, VCPUs_at_startup*, actions_after_shutdown*, actions_after_reboot*, actions_after_crash*, PV_bootloader*, PV_kernel*, PV_ramdisk*, PV_args*, PV_bootloader_args*, PV_legacy_args*, HVM_boot_policy*, HVM_boot_params*, HVM_shadow_multiplier, platform*, PCI_bus*, other_config*, recommendations*, xenstore_data, ha_always_run, ha_restart_priority, tags, blocked_operations, protection_policy, is_snapshot_from_vmpp, snapshot_schedule, is_vmss_snapshot, appliance, start_delay, shutdown_delay, order, suspend_SR, version, generation_id, hardware_platform_version, has_vendor_device, reference_label, domain_type, NVRAM (* = non-optional).",
    "result": [ "VM ref", "reference to the newly created object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM record",
        "name": "args",
        "doc": "All constructor arguments" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the VM instance with the specified UUID.",
    "result": [ "VM ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given VM.",
    "result": [ "VM record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "vm_power_state",
    "values": [ 
      { "name": "Halted",
        "doc": "VM is offline and not using any resources" }, 
      { "name": "Paused",
        "doc": "All resources have been allocated but the VM itself is paused and its vCPUs are not running" }, 
      { "name": "Running",
        "doc": "Running" }, 
      { "name": "Suspended",
        "doc": "VM state has been saved to disk and it is nolonger running. Note that disks remain in-use while the VM is suspended." } ] }, 
  { "name": "on_normal_exit",
    "values": [ 
      { "name": "destroy",
        "doc": "destroy the VM state" }, 
      { "name": "restart",
        "doc": "restart the VM" } ] }, 
  { "name": "vm_operations",
    "values": [ 
      { "name": "snapshot",
        "doc": "refers to the operation \"snapshot\"" }, 
      { "name": "clone",
        "doc": "refers to the operation \"clone\"" }, 
      { "name": "copy",
        "doc": "refers to the operation \"copy\"" }, 
      { "name": "create_template",
        "doc": "refers to the operation \"create_template\"" }, 
      { "name": "revert",
        "doc": "refers to the operation \"revert\"" }, 
      { "name": "checkpoint",
        "doc": "refers to the operation \"checkpoint\"" }, 
      { "name": "snapshot_with_quiesce",
        "doc": "refers to the operation \"snapshot_with_quiesce\"" }, 
      { "name": "provision",
        "doc": "refers to the operation \"provision\"" }, 
      { "name": "start",
        "doc": "refers to the operation \"start\"" }, 
      { "name": "start_on",
        "doc": "refers to the operation \"start_on\"" }, 
      { "name": "pause",
        "doc": "refers to the operation \"pause\"" }, 
      { "name": "unpause",
        "doc": "refers to the operation \"unpause\"" }, 
      { "name": "clean_shutdown",
        "doc": "refers to the operation \"clean_shutdown\"" }, 
      { "name": "clean_reboot",
        "doc": "refers to the operation \"clean_reboot\"" }, 
      { "name": "hard_shutdown",
        "doc": "refers to the operation \"hard_shutdown\"" }, 
      { "name": "power_state_reset",
        "doc": "refers to the operation \"power_state_reset\"" }, 
      { "name": "hard_reboot",
        "doc": "refers to the operation \"hard_reboot\"" }, 
      { "name": "suspend",
        "doc": "refers to the operation \"suspend\"" }, 
      { "name": "csvm",
        "doc": "refers to the operation \"csvm\"" }, 
      { "name": "resume",
        "doc": "refers to the operation \"resume\"" }, 
      { "name": "resume_on",
        "doc": "refers to the operation \"resume_on\"" }, 
      { "name": "pool_migrate",
        "doc": "refers to the operation \"pool_migrate\"" }, 
      { "name": "migrate_send",
        "doc": "refers to the operation \"migrate_send\"" }, 
      { "name": "get_boot_record",
        "doc": "refers to the operation \"get_boot_record\"" }, 
      { "name": "send_sysrq",
        "doc": "refers to the operation \"send_sysrq\"" }, 
      { "name": "send_trigger",
        "doc": "refers to the operation \"send_trigger\"" }, 
      { "name": "query_services",
        "doc": "refers to the operation \"query_services\"" }, 
      { "name": "shutdown",
        "doc": "refers to the operation \"shutdown\"" }, 
      { "name": "call_plugin",
        "doc": "refers to the operation \"call_plugin\"" }, 
      { "name": "changing_memory_live",
        "doc": "Changing the memory settings" }, 
      { "name": "awaiting_memory_live",
        "doc": "Waiting for the memory settings to change" }, 
      { "name": "changing_dynamic_range",
        "doc": "Changing the memory dynamic range" }, 
      { "name": "changing_static_range",
        "doc": "Changing the memory static range" }, 
      { "name": "changing_memory_limits",
        "doc": "Changing the memory limits" }, 
      { "name": "changing_shadow_memory",
        "doc": "Changing the shadow memory for a halted VM." }, 
      { "name": "changing_shadow_memory_live",
        "doc": "Changing the shadow memory for a running VM." }, 
      { "name": "changing_VCPUs",
        "doc": "Changing VCPU settings for a halted VM." }, 
      { "name": "changing_VCPUs_live",
        "doc": "Changing VCPU settings for a running VM." }, 
      { "name": "changing_NVRAM",
        "doc": "Changing NVRAM for a halted VM." }, 
      { "name": "assert_operation_valid",
        "doc": "" }, 
      { "name": "data_source_op",
        "doc": "Add, remove, query or list data sources" }, 
      { "name": "update_allowed_operations",
        "doc": "" }, 
      { "name": "make_into_template",
        "doc": "Turning this VM into a template" }, 
      { "name": "import",
        "doc": "importing a VM from a network stream" }, 
      { "name": "export",
        "doc": "exporting a VM to a network stream" }, 
      { "name": "metadata_export",
        "doc": "exporting VM metadata to a network stream" }, 
      { "name": "reverting",
        "doc": "Reverting the VM to a previous snapshotted state" }, 
      { "name": "destroy",
        "doc": "refers to the act of uninstalling the VM" } ] }, 
  { "name": "on_crash_behaviour",
    "values": [ 
      { "name": "destroy",
        "doc": "destroy the VM state" }, 
      { "name": "coredump_and_destroy",
        "doc": "record a coredump and then destroy the VM state" }, 
      { "name": "restart",
        "doc": "restart the VM" }, 
      { "name": "coredump_and_restart",
        "doc": "record a coredump and then restart the VM" }, 
      { "name": "preserve",
        "doc": "leave the crashed VM paused" }, 
      { "name": "rename_restart",
        "doc": "rename the crashed VM and start a new copy" } ] }, 
  { "name": "domain_type",
    "values": [ 
      { "name": "hvm",
        "doc": "HVM; Fully Virtualised" }, 
      { "name": "pv",
        "doc": "PV: Paravirtualised" }, 
      { "name": "pv_in_pvh",
        "doc": "PV inside a PVH container" }, 
      { "name": "unspecified",
        "doc": "Not specified or unknown domain type" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "" } ],
"tag": "" }, { "name": "VM_metrics",
"description": "The metrics associated with a VM",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "memory_actual",
    "description": "Guest's actual memory (bytes)",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Guest's actual memory (bytes)" } ] }, 
  { "name": "VCPUs_number",
    "description": "Current number of VCPUs",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Current number of VCPUs" } ] }, 
  { "name": "VCPUs_utilisation",
    "description": "Utilisation for all of guest's current VCPUs",
    "type": "(int -> float) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled in favour of RRDs" } ] }, 
  { "name": "VCPUs_CPU",
    "description": "VCPU to PCPU map",
    "type": "(int -> int) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "VCPU to PCPU map" } ] }, 
  { "name": "VCPUs_params",
    "description": "The live equivalent to VM.VCPUs_params",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The live equivalent to VM.VCPUs_params" } ] }, 
  { "name": "VCPUs_flags",
    "description": "CPU flags (blocked,online,running)",
    "type": "(int -> string set) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "CPU flags (blocked,online,running)" } ] }, 
  { "name": "state",
    "description": "The state of the guest, eg blocked, dying etc",
    "type": "string set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The state of the guest, eg blocked, dying etc" } ] }, 
  { "name": "start_time",
    "description": "Time at which this VM was last booted",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time at which this VM was last booted" } ] }, 
  { "name": "install_time",
    "description": "Time at which the VM was installed",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time at which the VM was installed" } ] }, 
  { "name": "last_updated",
    "description": "Time at which this information was last updated",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time at which this information was last updated" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "default": "{}" }, 
  { "name": "hvm",
    "description": "hardware virtual machine",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "hardware virtual machine" } ],
    "default": "false" }, 
  { "name": "nested_virt",
    "description": "VM supports nested virtualisation",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "VM supports nested virtualisation" } ],
    "default": "false" }, 
  { "name": "nomigrate",
    "description": "VM is immobile and can't migrate between hosts",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "VM is immobile and can't migrate between hosts" } ],
    "default": "false" }, 
  { "name": "current_domain_type",
    "description": "The current domain type of the VM (for running,suspended, or paused VMs). The last-known domain type for halted VMs.",
    "type": "enum domain_type",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "jura",
        "description": "Not yet implemented (for future use)" }, 
      { "transition": "published",
        "release": "kolkata",
        "description": "This field now contains valid data" } ],
    "default": "unspecified" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of VM_metrics references to VM_metrics records for all VM_metrics instances known to the system.",
    "result": [ "(VM_metrics ref -> VM_metrics record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a VM" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the VM_metrics instances known to the system.",
    "result": [ "VM_metrics ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a VM" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given VM_metrics.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given VM_metrics.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given VM_metrics.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_current_domain_type",
    "description": "Get the current_domain_type field of the given VM_metrics.",
    "result": [ "enum domain_type", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "jura",
        "description": "Not yet implemented (for future use)" }, 
      { "transition": "published",
        "release": "kolkata",
        "description": "This field now contains valid data" } ],
    "implicit": true }, 
  { "name": "get_nomigrate",
    "description": "Get the nomigrate field of the given VM_metrics.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "VM is immobile and can't migrate between hosts" } ],
    "implicit": true }, 
  { "name": "get_nested_virt",
    "description": "Get the nested_virt field of the given VM_metrics.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "VM supports nested virtualisation" } ],
    "implicit": true }, 
  { "name": "get_hvm",
    "description": "Get the hvm field of the given VM_metrics.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "hardware virtual machine" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given VM_metrics.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_last_updated",
    "description": "Get the last_updated field of the given VM_metrics.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time at which this information was last updated" } ],
    "implicit": true }, 
  { "name": "get_install_time",
    "description": "Get the install_time field of the given VM_metrics.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time at which the VM was installed" } ],
    "implicit": true }, 
  { "name": "get_start_time",
    "description": "Get the start_time field of the given VM_metrics.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time at which this VM was last booted" } ],
    "implicit": true }, 
  { "name": "get_state",
    "description": "Get the state field of the given VM_metrics.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The state of the guest, eg blocked, dying etc" } ],
    "implicit": true }, 
  { "name": "get_VCPUs_flags",
    "description": "Get the VCPUs/flags field of the given VM_metrics.",
    "result": [ "(int -> string set) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "CPU flags (blocked,online,running)" } ],
    "implicit": true }, 
  { "name": "get_VCPUs_params",
    "description": "Get the VCPUs/params field of the given VM_metrics.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The live equivalent to VM.VCPUs_params" } ],
    "implicit": true }, 
  { "name": "get_VCPUs_CPU",
    "description": "Get the VCPUs/CPU field of the given VM_metrics.",
    "result": [ "(int -> int) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "VCPU to PCPU map" } ],
    "implicit": true }, 
  { "name": "get_VCPUs_utilisation",
    "description": "Get the VCPUs/utilisation field of the given VM_metrics.",
    "result": [ "(int -> float) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled in favour of RRDs" } ],
    "implicit": true }, 
  { "name": "get_VCPUs_number",
    "description": "Get the VCPUs/number field of the given VM_metrics.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Current number of VCPUs" } ],
    "implicit": true }, 
  { "name": "get_memory_actual",
    "description": "Get the memory/actual field of the given VM_metrics.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Guest's actual memory (bytes)" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given VM_metrics.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the VM_metrics instance with the specified UUID.",
    "result": [ "VM_metrics ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a VM" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given VM_metrics.",
    "result": [ "VM_metrics record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a VM" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "domain_type",
    "values": [ 
      { "name": "hvm",
        "doc": "HVM; Fully Virtualised" }, 
      { "name": "pv",
        "doc": "PV: Paravirtualised" }, 
      { "name": "pv_in_pvh",
        "doc": "PV inside a PVH container" }, 
      { "name": "unspecified",
        "doc": "Not specified or unknown domain type" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "The metrics associated with a VM" } ],
"tag": "" }, { "name": "VM_guest_metrics",
"description": "The metrics reported by the guest (as opposed to inferred from outside)",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "os_version",
    "description": "version of the OS",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "version of the OS" } ] }, 
  { "name": "PV_drivers_version",
    "description": "version of the PV drivers",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "version of the PV drivers" } ] }, 
  { "name": "PV_drivers_up_to_date",
    "description": "Logically equivalent to PV_drivers_detected",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if the PV drivers appear to be up to date" }, 
      { "transition": "deprecated",
        "release": "dundee",
        "description": "Deprecated in favour of PV_drivers_detected, and redefined in terms of it" } ] }, 
  { "name": "memory",
    "description": "This field exists but has no data. Use the memory and memory_internal_free RRD data-sources instead.",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "free/used/total" }, 
      { "transition": "removed",
        "release": "george",
        "description": "Disabled in favour of the RRDs, to improve scalability" } ] }, 
  { "name": "disks",
    "description": "This field exists but has no data.",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Disk configuration/free space" }, 
      { "transition": "removed",
        "release": "orlando",
        "description": "No data" } ] }, 
  { "name": "networks",
    "description": "network configuration",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "network configuration" } ] }, 
  { "name": "other",
    "description": "anything else",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "anything else" } ] }, 
  { "name": "last_updated",
    "description": "Time at which this information was last updated",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time at which this information was last updated" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "default": "{}" }, 
  { "name": "live",
    "description": "True if the guest is sending heartbeat messages via the guest agent",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "True if the guest is sending heartbeat messages via the guest agent" } ],
    "default": "false" }, 
  { "name": "can_use_hotplug_vbd",
    "description": "The guest's statement of whether it supports VBD hotplug, i.e. whether it is capable of responding immediately to instantiation of a new VBD by bringing online a new PV block device. If the guest states that it is not capable, then the VBD plug and unplug operations will not be allowed while the guest is running.",
    "type": "enum tristate_type",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "To be used where relevant and available instead of checking PV driver version." } ],
    "default": "unspecified" }, 
  { "name": "can_use_hotplug_vif",
    "description": "The guest's statement of whether it supports VIF hotplug, i.e. whether it is capable of responding immediately to instantiation of a new VIF by bringing online a new PV network device. If the guest states that it is not capable, then the VIF plug and unplug operations will not be allowed while the guest is running.",
    "type": "enum tristate_type",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "To be used where relevant and available instead of checking PV driver version." } ],
    "default": "unspecified" }, 
  { "name": "PV_drivers_detected",
    "description": "At least one of the guest's devices has successfully connected to the backend.",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "default": "false" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of VM_guest_metrics references to VM_guest_metrics records for all VM_guest_metrics instances known to the system.",
    "result": [ "(VM_guest_metrics ref -> VM_guest_metrics record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics reported by the guest (as opposed to inferred from outside)" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the VM_guest_metrics instances known to the system.",
    "result": [ "VM_guest_metrics ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics reported by the guest (as opposed to inferred from outside)" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given VM_guest_metrics.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_guest_metrics ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given VM_guest_metrics.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_guest_metrics ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given VM_guest_metrics.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_guest_metrics ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_PV_drivers_detected",
    "description": "Get the PV_drivers_detected field of the given VM_guest_metrics.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_guest_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_can_use_hotplug_vif",
    "description": "Get the can_use_hotplug_vif field of the given VM_guest_metrics.",
    "result": [ "enum tristate_type", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_guest_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "To be used where relevant and available instead of checking PV driver version." } ],
    "implicit": true }, 
  { "name": "get_can_use_hotplug_vbd",
    "description": "Get the can_use_hotplug_vbd field of the given VM_guest_metrics.",
    "result": [ "enum tristate_type", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_guest_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "To be used where relevant and available instead of checking PV driver version." } ],
    "implicit": true }, 
  { "name": "get_live",
    "description": "Get the live field of the given VM_guest_metrics.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_guest_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "True if the guest is sending heartbeat messages via the guest agent" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given VM_guest_metrics.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_guest_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_last_updated",
    "description": "Get the last_updated field of the given VM_guest_metrics.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_guest_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time at which this information was last updated" } ],
    "implicit": true }, 
  { "name": "get_other",
    "description": "Get the other field of the given VM_guest_metrics.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_guest_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "anything else" } ],
    "implicit": true }, 
  { "name": "get_networks",
    "description": "Get the networks field of the given VM_guest_metrics.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_guest_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "network configuration" } ],
    "implicit": true }, 
  { "name": "get_disks",
    "description": "Get the disks field of the given VM_guest_metrics.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_guest_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Disk configuration/free space" }, 
      { "transition": "removed",
        "release": "orlando",
        "description": "No data" } ],
    "implicit": true }, 
  { "name": "get_memory",
    "description": "Get the memory field of the given VM_guest_metrics.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_guest_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "free/used/total" }, 
      { "transition": "removed",
        "release": "george",
        "description": "Disabled in favour of the RRDs, to improve scalability" } ],
    "implicit": true }, 
  { "name": "get_PV_drivers_up_to_date",
    "description": "Get the PV_drivers_up_to_date field of the given VM_guest_metrics.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_guest_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if the PV drivers appear to be up to date" }, 
      { "transition": "deprecated",
        "release": "dundee",
        "description": "Deprecated in favour of PV_drivers_detected, and redefined in terms of it" } ],
    "implicit": true }, 
  { "name": "get_PV_drivers_version",
    "description": "Get the PV_drivers_version field of the given VM_guest_metrics.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_guest_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "version of the PV drivers" } ],
    "implicit": true }, 
  { "name": "get_os_version",
    "description": "Get the os_version field of the given VM_guest_metrics.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_guest_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "version of the OS" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given VM_guest_metrics.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_guest_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the VM_guest_metrics instance with the specified UUID.",
    "result": [ "VM_guest_metrics ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics reported by the guest (as opposed to inferred from outside)" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given VM_guest_metrics.",
    "result": [ "VM_guest_metrics record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_guest_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics reported by the guest (as opposed to inferred from outside)" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "tristate_type",
    "values": [ 
      { "name": "yes",
        "doc": "Known to be true" }, 
      { "name": "no",
        "doc": "Known to be false" }, 
      { "name": "unspecified",
        "doc": "Unknown or unspecified" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "The metrics reported by the guest (as opposed to inferred from outside)" } ],
"tag": "" }, { "name": "VMPP",
"description": "VM Protection Policy",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ] }, 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "default": "\"\"" }, 
  { "name": "is_policy_enabled",
    "description": "enable or disable this policy",
    "type": "bool",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "default": "true" }, 
  { "name": "backup_type",
    "description": "type of the backup sub-policy",
    "type": "enum vmpp_backup_type",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "default": "snapshot" }, 
  { "name": "backup_retention_value",
    "description": "maximum number of backups that should be stored at any time",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "default": "7" }, 
  { "name": "backup_frequency",
    "description": "frequency of the backup schedule",
    "type": "enum vmpp_backup_frequency",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "default": "daily" }, 
  { "name": "backup_schedule",
    "description": "schedule of the backup containing 'hour', 'min', 'days'. Date/time-related information is in Local Timezone",
    "type": "(string -> string) map",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "default": "{}" }, 
  { "name": "is_backup_running",
    "description": "true if this protection policy's backup is running",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ] }, 
  { "name": "backup_last_run_time",
    "description": "time of the last backup",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "default": "19700101T00:00:00Z" }, 
  { "name": "archive_target_type",
    "description": "type of the archive target config",
    "type": "enum vmpp_archive_target_type",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "default": "none" }, 
  { "name": "archive_target_config",
    "description": "configuration for the archive, including its 'location', 'username', 'password'",
    "type": "(string -> string) map",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "default": "{}" }, 
  { "name": "archive_frequency",
    "description": "frequency of the archive schedule",
    "type": "enum vmpp_archive_frequency",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "default": "never" }, 
  { "name": "archive_schedule",
    "description": "schedule of the archive containing 'hour', 'min', 'days'. Date/time-related information is in Local Timezone",
    "type": "(string -> string) map",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "default": "{}" }, 
  { "name": "is_archive_running",
    "description": "true if this protection policy's archive is running",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ] }, 
  { "name": "archive_last_run_time",
    "description": "time of the last archive",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "default": "19700101T00:00:00Z" }, 
  { "name": "VMs",
    "description": "all VMs attached to this protection policy",
    "type": "VM ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ] }, 
  { "name": "is_alarm_enabled",
    "description": "true if alarm is enabled for this policy",
    "type": "bool",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "default": "false" }, 
  { "name": "alarm_config",
    "description": "configuration for the alarm",
    "type": "(string -> string) map",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "default": "{}" }, 
  { "name": "recent_alerts",
    "description": "recent alerts",
    "type": "string set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of VMPP references to VMPP records for all VMPPs known to the system.",
    "result": [ "(VMPP ref -> VMPP record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the VMPPs known to the system.",
    "result": [ "VMPP ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "set_archive_last_run_time",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "datetime",
        "name": "value",
        "doc": "the value to set" } ],
    "errors": [  ],
    "roles": [  ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "set_backup_last_run_time",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "datetime",
        "name": "value",
        "doc": "the value to set" } ],
    "errors": [  ],
    "roles": [  ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "remove_from_alarm_config",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "string",
        "name": "key",
        "doc": "the key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "remove_from_archive_schedule",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "string",
        "name": "key",
        "doc": "the key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "remove_from_archive_target_config",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "string",
        "name": "key",
        "doc": "the key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "remove_from_backup_schedule",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "string",
        "name": "key",
        "doc": "the key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "add_to_alarm_config",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "string",
        "name": "key",
        "doc": "the key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "the value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "add_to_archive_schedule",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "string",
        "name": "key",
        "doc": "the key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "the value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "add_to_archive_target_config",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "string",
        "name": "key",
        "doc": "the key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "the value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "add_to_backup_schedule",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "string",
        "name": "key",
        "doc": "the key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "the value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "set_alarm_config",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "the value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "set_is_alarm_enabled",
    "description": "Set the value of the is_alarm_enabled field",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "bool",
        "name": "value",
        "doc": "true if alarm is enabled for this policy" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "set_archive_target_config",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "the value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "set_archive_target_type",
    "description": "Set the value of the archive_target_config_type field",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "enum vmpp_archive_target_type",
        "name": "value",
        "doc": "the archive target config type" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "set_archive_schedule",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "the value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "set_archive_frequency",
    "description": "Set the value of the archive_frequency field",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "enum vmpp_archive_frequency",
        "name": "value",
        "doc": "the archive frequency" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "set_backup_schedule",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "the value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "set_backup_frequency",
    "description": "Set the value of the backup_frequency field",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "enum vmpp_backup_frequency",
        "name": "value",
        "doc": "the backup frequency" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "set_backup_retention_value",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "The protection policy" }, 
      { "type": "int",
        "name": "value",
        "doc": "the value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "get_alerts",
    "description": "This call fetches a history of alerts for a given protection policy",
    "result": [ "string set", "A list of alerts encoded in xml" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "vmpp",
        "doc": "The protection policy" }, 
      { "type": "int",
        "name": "hours_from_now",
        "doc": "how many hours in the past the oldest record to fetch is" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "archive_now",
    "description": "This call archives the snapshot provided as a parameter",
    "result": [ "string", "An XMLRPC result" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "snapshot",
        "doc": "The snapshot to archive" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "protect_now",
    "description": "This call executes the protection policy immediately",
    "result": [ "string", "An XMLRPC result" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "vmpp",
        "doc": "The protection policy to execute" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": false }, 
  { "name": "set_backup_type",
    "description": "Set the backup_type field of the given VMPP.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "enum vmpp_backup_type",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "set_is_policy_enabled",
    "description": "Set the is_policy_enabled field of the given VMPP.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "bool",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "set_name_description",
    "description": "Set the name/description field of the given VMPP.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "set_name_label",
    "description": "Set the name/label field of the given VMPP.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_recent_alerts",
    "description": "Get the recent_alerts field of the given VMPP.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_alarm_config",
    "description": "Get the alarm_config field of the given VMPP.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_is_alarm_enabled",
    "description": "Get the is_alarm_enabled field of the given VMPP.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_VMs",
    "description": "Get the VMs field of the given VMPP.",
    "result": [ "VM ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_archive_last_run_time",
    "description": "Get the archive_last_run_time field of the given VMPP.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_is_archive_running",
    "description": "Get the is_archive_running field of the given VMPP.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_archive_schedule",
    "description": "Get the archive_schedule field of the given VMPP.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_archive_frequency",
    "description": "Get the archive_frequency field of the given VMPP.",
    "result": [ "enum vmpp_archive_frequency", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_archive_target_config",
    "description": "Get the archive_target_config field of the given VMPP.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_archive_target_type",
    "description": "Get the archive_target_type field of the given VMPP.",
    "result": [ "enum vmpp_archive_target_type", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_backup_last_run_time",
    "description": "Get the backup_last_run_time field of the given VMPP.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_is_backup_running",
    "description": "Get the is_backup_running field of the given VMPP.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_backup_schedule",
    "description": "Get the backup_schedule field of the given VMPP.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_backup_frequency",
    "description": "Get the backup_frequency field of the given VMPP.",
    "result": [ "enum vmpp_backup_frequency", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_backup_retention_value",
    "description": "Get the backup_retention_value field of the given VMPP.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_backup_type",
    "description": "Get the backup_type field of the given VMPP.",
    "result": [ "enum vmpp_backup_type", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_is_policy_enabled",
    "description": "Get the is_policy_enabled field of the given VMPP.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given VMPP.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given VMPP.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given VMPP.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the VMPP instances with the given label.",
    "result": [ "VMPP ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy the specified VMPP instance.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "create",
    "description": "Create a new VMPP instance, and return its handle.\nThe constructor args are: name_label, name_description, is_policy_enabled, backup_type, backup_retention_value, backup_frequency, backup_schedule, archive_target_type, archive_target_config, archive_frequency, archive_schedule, is_alarm_enabled, alarm_config (* = non-optional).",
    "result": [ "VMPP ref", "reference to the newly created object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP record",
        "name": "args",
        "doc": "All constructor arguments" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the VMPP instance with the specified UUID.",
    "result": [ "VMPP ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given VMPP.",
    "result": [ "VMPP record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMPP ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "The VMPR feature was removed" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "vmpp_backup_type",
    "values": [ 
      { "name": "snapshot",
        "doc": "The backup is a snapshot" }, 
      { "name": "checkpoint",
        "doc": "The backup is a checkpoint" } ] }, 
  { "name": "vmpp_backup_frequency",
    "values": [ 
      { "name": "hourly",
        "doc": "Hourly backups" }, 
      { "name": "daily",
        "doc": "Daily backups" }, 
      { "name": "weekly",
        "doc": "Weekly backups" } ] }, 
  { "name": "vmpp_archive_frequency",
    "values": [ 
      { "name": "never",
        "doc": "Never archive" }, 
      { "name": "always_after_backup",
        "doc": "Archive after backup" }, 
      { "name": "daily",
        "doc": "Daily archives" }, 
      { "name": "weekly",
        "doc": "Weekly backups" } ] }, 
  { "name": "vmpp_archive_target_type",
    "values": [ 
      { "name": "none",
        "doc": "No target config" }, 
      { "name": "cifs",
        "doc": "CIFS target config" }, 
      { "name": "nfs",
        "doc": "NFS target config" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "cowley",
    "description": "" }, 
  { "transition": "removed",
    "release": "clearwater",
    "description": "The VMPR feature was removed" } ],
"tag": "" }, { "name": "VMSS",
"description": "VM Snapshot Schedule",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "default": "\"\"" }, 
  { "name": "enabled",
    "description": "enable or disable this snapshot schedule",
    "type": "bool",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "enable or disable this snapshot schedule" } ],
    "default": "true" }, 
  { "name": "type",
    "description": "type of the snapshot schedule",
    "type": "enum vmss_type",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "type of the snapshot schedule" } ] }, 
  { "name": "retained_snapshots",
    "description": "maximum number of snapshots that should be stored at any time",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "maximum number of snapshots that should be stored at any time" } ],
    "default": "7" }, 
  { "name": "frequency",
    "description": "frequency of taking snapshot from snapshot schedule",
    "type": "enum vmss_frequency",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "frequency of taking snapshot from snapshot schedule" } ] }, 
  { "name": "schedule",
    "description": "schedule of the snapshot containing 'hour', 'min', 'days'. Date/time-related information is in Local Timezone",
    "type": "(string -> string) map",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "schedule of the snapshot containing 'hour', 'min', 'days'. Date/time-related information is in Local Timezone" } ],
    "default": "{}" }, 
  { "name": "last_run_time",
    "description": "time of the last snapshot",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "time of the last snapshot" } ],
    "default": "19700101T00:00:00Z" }, 
  { "name": "VMs",
    "description": "all VMs attached to this snapshot schedule",
    "type": "VM ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "all VMs attached to this snapshot schedule" } ] } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of VMSS references to VMSS records for all VMSSs known to the system.",
    "result": [ "(VMSS ref -> VMSS record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "VM Snapshot Schedule" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the VMSSs known to the system.",
    "result": [ "VMSS ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "VM Snapshot Schedule" } ],
    "implicit": true }, 
  { "name": "set_type",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "The snapshot schedule" }, 
      { "type": "enum vmss_type",
        "name": "value",
        "doc": "the snapshot schedule type" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": false }, 
  { "name": "set_last_run_time",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "The snapshot schedule" }, 
      { "type": "datetime",
        "name": "value",
        "doc": "the value to set" } ],
    "errors": [  ],
    "roles": [  ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": false }, 
  { "name": "remove_from_schedule",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "The snapshot schedule" }, 
      { "type": "string",
        "name": "key",
        "doc": "the key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": false }, 
  { "name": "add_to_schedule",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "The snapshot schedule" }, 
      { "type": "string",
        "name": "key",
        "doc": "the key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "the value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": false }, 
  { "name": "set_schedule",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "The snapshot schedule" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "the value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": false }, 
  { "name": "set_frequency",
    "description": "Set the value of the frequency field",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "The snapshot schedule" }, 
      { "type": "enum vmss_frequency",
        "name": "value",
        "doc": "the snapshot schedule frequency" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "Set the value of the frequency field" } ],
    "implicit": false }, 
  { "name": "set_retained_snapshots",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "The schedule snapshot" }, 
      { "type": "int",
        "name": "value",
        "doc": "the value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": false }, 
  { "name": "snapshot_now",
    "description": "This call executes the snapshot schedule immediately",
    "result": [ "string", "An XMLRPC result" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "vmss",
        "doc": "Snapshot Schedule to execute" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "This call executes the snapshot schedule immediately" } ],
    "implicit": false }, 
  { "name": "set_enabled",
    "description": "Set the enabled field of the given VMSS.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "bool",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "enable or disable this snapshot schedule" } ],
    "implicit": true }, 
  { "name": "set_name_description",
    "description": "Set the name/description field of the given VMSS.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "set_name_label",
    "description": "Set the name/label field of the given VMSS.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_VMs",
    "description": "Get the VMs field of the given VMSS.",
    "result": [ "VM ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "all VMs attached to this snapshot schedule" } ],
    "implicit": true }, 
  { "name": "get_last_run_time",
    "description": "Get the last_run_time field of the given VMSS.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "time of the last snapshot" } ],
    "implicit": true }, 
  { "name": "get_schedule",
    "description": "Get the schedule field of the given VMSS.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "schedule of the snapshot containing 'hour', 'min', 'days'. Date/time-related information is in Local Timezone" } ],
    "implicit": true }, 
  { "name": "get_frequency",
    "description": "Get the frequency field of the given VMSS.",
    "result": [ "enum vmss_frequency", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "frequency of taking snapshot from snapshot schedule" } ],
    "implicit": true }, 
  { "name": "get_retained_snapshots",
    "description": "Get the retained_snapshots field of the given VMSS.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "maximum number of snapshots that should be stored at any time" } ],
    "implicit": true }, 
  { "name": "get_type",
    "description": "Get the type field of the given VMSS.",
    "result": [ "enum vmss_type", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "type of the snapshot schedule" } ],
    "implicit": true }, 
  { "name": "get_enabled",
    "description": "Get the enabled field of the given VMSS.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "enable or disable this snapshot schedule" } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given VMSS.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given VMSS.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given VMSS.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the VMSS instances with the given label.",
    "result": [ "VMSS ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "VM Snapshot Schedule" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy the specified VMSS instance.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "VM Snapshot Schedule" } ],
    "implicit": true }, 
  { "name": "create",
    "description": "Create a new VMSS instance, and return its handle.\nThe constructor args are: name_label, name_description, enabled, type*, retained_snapshots, frequency*, schedule (* = non-optional).",
    "result": [ "VMSS ref", "reference to the newly created object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS record",
        "name": "args",
        "doc": "All constructor arguments" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "VM Snapshot Schedule" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the VMSS instance with the specified UUID.",
    "result": [ "VMSS ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "VM Snapshot Schedule" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given VMSS.",
    "result": [ "VMSS record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VMSS ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "VM Snapshot Schedule" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "vmss_frequency",
    "values": [ 
      { "name": "hourly",
        "doc": "Hourly snapshots" }, 
      { "name": "daily",
        "doc": "Daily snapshots" }, 
      { "name": "weekly",
        "doc": "Weekly snapshots" } ] }, 
  { "name": "vmss_type",
    "values": [ 
      { "name": "snapshot",
        "doc": "The snapshot is a disk snapshot" }, 
      { "name": "checkpoint",
        "doc": "The snapshot is a checkpoint" }, 
      { "name": "snapshot_with_quiesce",
        "doc": "The snapshot is a VSS" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "falcon",
    "description": "VM Snapshot Schedule" } ],
"tag": "" }, { "name": "VM_appliance",
"description": "VM appliance",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "default": "\"\"" }, 
  { "name": "allowed_operations",
    "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client.",
    "type": "enum vm_appliance_operation set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "default": "{}" }, 
  { "name": "current_operations",
    "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task.",
    "type": "(string -> enum vm_appliance_operation) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "default": "{}" }, 
  { "name": "VMs",
    "description": "all VMs in this appliance",
    "type": "VM ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "all VMs in this appliance" } ] } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of VM_appliance references to VM_appliance records for all VM_appliances known to the system.",
    "result": [ "(VM_appliance ref -> VM_appliance record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "VM appliance" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the VM_appliances known to the system.",
    "result": [ "VM_appliance ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "VM appliance" } ],
    "implicit": true }, 
  { "name": "recover",
    "description": "Recover the VM appliance",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_appliance ref",
        "name": "self",
        "doc": "The VM appliance to recover" }, 
      { "type": "session ref",
        "name": "session_to",
        "doc": "The session to which the VM appliance is to be recovered." }, 
      { "type": "bool",
        "name": "force",
        "doc": "Whether the VMs should replace newer versions of themselves." } ],
    "errors": [ 
      { "name": "VM_REQUIRES_SR",
        "doc": "You attempted to run a VM on a host which doesn't have access to an SR needed by the VM. The VM has at least one VBD attached to a VDI in the SR." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Recover the VM appliance" } ],
    "implicit": false }, 
  { "name": "get_SRs_required_for_recovery",
    "description": "Get the list of SRs required by the VM appliance to recover.",
    "result": [ "SR ref set", "refs for SRs required to recover the VM" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_appliance ref",
        "name": "self",
        "doc": "The VM appliance for which the required list of SRs has to be recovered." }, 
      { "type": "session ref",
        "name": "session_to",
        "doc": "The session to which the list of SRs have to be recovered ." } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "creedence",
        "description": "Get the list of SRs required by the VM appliance to recover." } ],
    "implicit": false }, 
  { "name": "assert_can_be_recovered",
    "description": "Assert whether all SRs required to recover this VM appliance are available.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_appliance ref",
        "name": "self",
        "doc": "The VM appliance to recover" }, 
      { "type": "session ref",
        "name": "session_to",
        "doc": "The session to which the VM appliance is to be recovered." } ],
    "errors": [ 
      { "name": "VM_REQUIRES_SR",
        "doc": "You attempted to run a VM on a host which doesn't have access to an SR needed by the VM. The VM has at least one VBD attached to a VDI in the SR." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Assert whether all SRs required to recover this VM appliance are available." } ],
    "implicit": false }, 
  { "name": "shutdown",
    "description": "For each VM in the appliance, try to shut it down cleanly. If this fails, perform a hard shutdown of the VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_appliance ref",
        "name": "self",
        "doc": "The VM appliance" } ],
    "errors": [ 
      { "name": "OPERATION_PARTIALLY_FAILED",
        "doc": "Some VMs belonging to the appliance threw an exception while carrying out the specified operation" } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "For each VM in the appliance, try to shut it down cleanly. If this fails, perform a hard shutdown of the VM." } ],
    "implicit": false }, 
  { "name": "hard_shutdown",
    "description": "Perform a hard shutdown of all the VMs in the appliance",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_appliance ref",
        "name": "self",
        "doc": "The VM appliance" } ],
    "errors": [ 
      { "name": "OPERATION_PARTIALLY_FAILED",
        "doc": "Some VMs belonging to the appliance threw an exception while carrying out the specified operation" } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Perform a hard shutdown of all the VMs in the appliance" } ],
    "implicit": false }, 
  { "name": "clean_shutdown",
    "description": "Perform a clean shutdown of all the VMs in the appliance",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_appliance ref",
        "name": "self",
        "doc": "The VM appliance" } ],
    "errors": [ 
      { "name": "OPERATION_PARTIALLY_FAILED",
        "doc": "Some VMs belonging to the appliance threw an exception while carrying out the specified operation" } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Perform a clean shutdown of all the VMs in the appliance" } ],
    "implicit": false }, 
  { "name": "start",
    "description": "Start all VMs in the appliance",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_appliance ref",
        "name": "self",
        "doc": "The VM appliance" }, 
      { "type": "bool",
        "name": "paused",
        "doc": "Instantiate all VMs belonging to this appliance in paused state if set to true." } ],
    "errors": [ 
      { "name": "OPERATION_PARTIALLY_FAILED",
        "doc": "Some VMs belonging to the appliance threw an exception while carrying out the specified operation" } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Start all VMs in the appliance" } ],
    "implicit": false }, 
  { "name": "set_name_description",
    "description": "Set the name/description field of the given VM_appliance.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_appliance ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "set_name_label",
    "description": "Set the name/label field of the given VM_appliance.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_appliance ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_VMs",
    "description": "Get the VMs field of the given VM_appliance.",
    "result": [ "VM ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_appliance ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "all VMs in this appliance" } ],
    "implicit": true }, 
  { "name": "get_current_operations",
    "description": "Get the current_operations field of the given VM_appliance.",
    "result": [ "(string -> enum vm_appliance_operation) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_appliance ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "implicit": true }, 
  { "name": "get_allowed_operations",
    "description": "Get the allowed_operations field of the given VM_appliance.",
    "result": [ "enum vm_appliance_operation set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_appliance ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given VM_appliance.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_appliance ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given VM_appliance.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_appliance ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given VM_appliance.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_appliance ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the VM_appliance instances with the given label.",
    "result": [ "VM_appliance ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "VM appliance" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy the specified VM_appliance instance.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_appliance ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "VM appliance" } ],
    "implicit": true }, 
  { "name": "create",
    "description": "Create a new VM_appliance instance, and return its handle.\nThe constructor args are: name_label, name_description (* = non-optional).",
    "result": [ "VM_appliance ref", "reference to the newly created object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_appliance record",
        "name": "args",
        "doc": "All constructor arguments" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "VM appliance" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the VM_appliance instance with the specified UUID.",
    "result": [ "VM_appliance ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "VM appliance" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given VM_appliance.",
    "result": [ "VM_appliance record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM_appliance ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "VM appliance" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "vm_appliance_operation",
    "values": [ 
      { "name": "start",
        "doc": "Start" }, 
      { "name": "clean_shutdown",
        "doc": "Clean shutdown" }, 
      { "name": "hard_shutdown",
        "doc": "Hard shutdown" }, 
      { "name": "shutdown",
        "doc": "Shutdown" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "boston",
    "description": "VM appliance" } ],
"tag": "" }, { "name": "DR_task",
"description": "DR task",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "introduced_SRs",
    "description": "All SRs introduced by this appliance",
    "type": "SR ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "All SRs introduced by this appliance" } ] } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of DR_task references to DR_task records for all DR_tasks known to the system.",
    "result": [ "(DR_task ref -> DR_task record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "DR task" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the DR_tasks known to the system.",
    "result": [ "DR_task ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "DR task" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy the disaster recovery task, detaching and forgetting any SRs introduced which are no longer required",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "DR_task ref",
        "name": "self",
        "doc": "The disaster recovery task to destroy" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Destroy the disaster recovery task, detaching and forgetting any SRs introduced which are no longer required" } ],
    "implicit": false }, 
  { "name": "create",
    "description": "Create a disaster recovery task which will query the supplied list of devices",
    "result": [ "DR_task ref", "The reference to the created task" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "type",
        "doc": "The SR driver type of the SRs to introduce" }, 
      { "type": "(string -> string) map",
        "name": "device_config",
        "doc": "The device configuration of the SRs to introduce" }, 
      { "type": "string set",
        "name": "whitelist",
        "doc": "The devices to use for disaster recovery" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Create a disaster recovery task which will query the supplied list of devices" } ],
    "implicit": false }, 
  { "name": "get_introduced_SRs",
    "description": "Get the introduced_SRs field of the given DR_task.",
    "result": [ "SR ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "DR_task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "All SRs introduced by this appliance" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given DR_task.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "DR_task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the DR_task instance with the specified UUID.",
    "result": [ "DR_task ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "DR task" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given DR_task.",
    "result": [ "DR_task record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "DR_task ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "DR task" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "boston",
    "description": "DR task" } ],
"tag": "" }, { "name": "host",
"description": "A physical host",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "default": "\"\"" }, 
  { "name": "memory_overhead",
    "description": "Virtualization memory overhead (bytes).",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Virtualization memory overhead (bytes)." } ],
    "default": "0" }, 
  { "name": "allowed_operations",
    "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client.",
    "type": "enum host_allowed_operations set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "default": "{}" }, 
  { "name": "current_operations",
    "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task.",
    "type": "(string -> enum host_allowed_operations) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "default": "{}" }, 
  { "name": "API_version_major",
    "description": "major version number",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "major version number" } ] }, 
  { "name": "API_version_minor",
    "description": "minor version number",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "minor version number" } ] }, 
  { "name": "API_version_vendor",
    "description": "identification of vendor",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "identification of vendor" } ] }, 
  { "name": "API_version_vendor_implementation",
    "description": "details of vendor implementation",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "details of vendor implementation" } ] }, 
  { "name": "enabled",
    "description": "True if the host is currently enabled",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "True if the host is currently enabled" } ] }, 
  { "name": "software_version",
    "description": "version strings",
    "type": "(string -> string) map",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "version strings" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ] }, 
  { "name": "capabilities",
    "description": "Xen capabilities",
    "type": "string set",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Xen capabilities" } ] }, 
  { "name": "cpu_configuration",
    "description": "The CPU configuration on this host.  May contain keys such as \"nr_nodes\", \"sockets_per_node\", \"cores_per_socket\", or \"threads_per_core\"",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The CPU configuration on this host.  May contain keys such as \"nr_nodes\", \"sockets_per_node\", \"cores_per_socket\", or \"threads_per_core\"" } ] }, 
  { "name": "sched_policy",
    "description": "Scheduler policy currently in force on this host",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Scheduler policy currently in force on this host" } ] }, 
  { "name": "supported_bootloaders",
    "description": "a list of the bootloaders installed on the machine",
    "type": "string set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a list of the bootloaders installed on the machine" } ] }, 
  { "name": "resident_VMs",
    "description": "list of VMs currently resident on host",
    "type": "VM ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of VMs currently resident on host" } ] }, 
  { "name": "logging",
    "description": "logging configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "logging configuration" } ] }, 
  { "name": "PIFs",
    "description": "physical network interfaces",
    "type": "PIF ref set",
    "qualifier": "RO/runtime",
    "tag": "networking",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "physical network interfaces" } ] }, 
  { "name": "suspend_image_sr",
    "description": "The SR in which VDIs for suspend images are created",
    "type": "SR ref",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The SR in which VDIs for suspend images are created" } ] }, 
  { "name": "crash_dump_sr",
    "description": "The SR in which VDIs for crash dumps are created",
    "type": "SR ref",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The SR in which VDIs for crash dumps are created" } ] }, 
  { "name": "crashdumps",
    "description": "Set of host crash dumps",
    "type": "host_crashdump ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Set of host crash dumps" } ] }, 
  { "name": "patches",
    "description": "Set of host patches",
    "type": "host_patch ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Set of host patches" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ] }, 
  { "name": "updates",
    "description": "Set of updates",
    "type": "pool_update ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Set of updates" } ] }, 
  { "name": "PBDs",
    "description": "physical blockdevices",
    "type": "PBD ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "physical blockdevices" } ] }, 
  { "name": "host_CPUs",
    "description": "The physical CPUs on this host",
    "type": "host_cpu ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The physical CPUs on this host" } ] }, 
  { "name": "cpu_info",
    "description": "Details about the physical CPUs on this host",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Details about the physical CPUs on this host" } ],
    "default": "{}" }, 
  { "name": "hostname",
    "description": "The hostname of this host",
    "type": "string",
    "qualifier": "RW",
    "tag": "networking",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The hostname of this host" } ] }, 
  { "name": "address",
    "description": "The address by which this host can be contacted from any other host in the pool",
    "type": "string",
    "qualifier": "RW",
    "tag": "networking",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The address by which this host can be contacted from any other host in the pool" } ] }, 
  { "name": "metrics",
    "description": "metrics associated with this host",
    "type": "host_metrics ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "metrics associated with this host" } ] }, 
  { "name": "license_params",
    "description": "State of the current license",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "State of the current license" } ] }, 
  { "name": "ha_statefiles",
    "description": "The set of statefiles accessible from this host",
    "type": "string set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "The set of statefiles accessible from this host" } ],
    "default": "{}" }, 
  { "name": "ha_network_peers",
    "description": "The set of hosts visible via the network from this host",
    "type": "string set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "The set of hosts visible via the network from this host" } ],
    "default": "{}" }, 
  { "name": "blobs",
    "description": "Binary blobs associated with this host",
    "type": "(string -> blob ref) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Binary blobs associated with this host" } ],
    "default": "{}" }, 
  { "name": "tags",
    "description": "user-specified tags for categorization purposes",
    "type": "string set",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "default": "{}" }, 
  { "name": "external_auth_type",
    "description": "type of external authentication service configured; empty if none configured.",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "type of external authentication service configured; empty if none configured." } ],
    "default": "\"\"" }, 
  { "name": "external_auth_service_name",
    "description": "name of external authentication service configured; empty if none configured.",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "name of external authentication service configured; empty if none configured." } ],
    "default": "\"\"" }, 
  { "name": "external_auth_configuration",
    "description": "configuration specific to external authentication service",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "configuration specific to external authentication service" } ],
    "default": "{}" }, 
  { "name": "edition",
    "description": "Product edition",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Product edition" } ],
    "default": "\"\"" }, 
  { "name": "license_server",
    "description": "Contact information of the license server",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Contact information of the license server" } ],
    "default": "{\"address\" -> \"localhost\", \"port\" -> \"27000\"}" }, 
  { "name": "bios_strings",
    "description": "BIOS strings",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "BIOS strings" } ],
    "default": "{}" }, 
  { "name": "power_on_mode",
    "description": "The power on mode",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "The power on mode" } ],
    "default": "\"\"" }, 
  { "name": "power_on_config",
    "description": "The power on config",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "The power on config" } ],
    "default": "{}" }, 
  { "name": "local_cache_sr",
    "description": "The SR that is used as a local cache",
    "type": "SR ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "The SR that is used as a local cache" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "chipset_info",
    "description": "Information about chipset features",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "{}" }, 
  { "name": "PCIs",
    "description": "List of PCI devices in the host",
    "type": "PCI ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ] }, 
  { "name": "PGPUs",
    "description": "List of physical GPUs in the host",
    "type": "PGPU ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ] }, 
  { "name": "PUSBs",
    "description": "List of physical USBs in the host",
    "type": "PUSB ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ] }, 
  { "name": "ssl_legacy",
    "description": "Allow SSLv3 protocol and ciphersuites as used by older server versions. This controls both incoming and outgoing connections. When this is set to a different value, the host immediately restarts its SSL/TLS listening service; typically this takes less than a second but existing connections to it will be broken. API login sessions will remain valid.",
    "type": "bool",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "default": "true" }, 
  { "name": "guest_VCPUs_params",
    "description": "VCPUs params to apply to all resident guests",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "VCPUs params to apply to all resident guests" } ],
    "default": "{}" }, 
  { "name": "display",
    "description": "indicates whether the host is configured to output its console to a physical display device",
    "type": "enum host_display",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cream",
        "description": "indicates whether the host is configured to output its console to a physical display device" } ],
    "default": "enabled" }, 
  { "name": "virtual_hardware_platform_versions",
    "description": "The set of versions of the virtual hardware platform that the host can offer to its guests",
    "type": "int set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cream",
        "description": "The set of versions of the virtual hardware platform that the host can offer to its guests" } ],
    "default": "{0}" }, 
  { "name": "control_domain",
    "description": "The control domain (domain 0)",
    "type": "VM ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "The control domain (domain 0)" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "updates_requiring_reboot",
    "description": "List of updates which require reboot",
    "type": "pool_update ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ] }, 
  { "name": "features",
    "description": "List of features available on this host",
    "type": "Feature ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ] }, 
  { "name": "iscsi_iqn",
    "description": "The initiator IQN for the host",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "multipathing",
    "description": "Specifies whether multipathing is enabled",
    "type": "bool",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "default": "false" }, 
  { "name": "uefi_certificates",
    "description": "The UEFI certificates allowing Secure Boot",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "plymouth",
        "description": "" } ],
    "default": "\"\"" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of host references to host records for all hosts known to the system.",
    "result": [ "(host ref -> host record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A physical host" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the hosts known to the system.",
    "result": [ "host ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A physical host" } ],
    "implicit": true }, 
  { "name": "set_uefi_certificates",
    "description": "Sets the UEFI certificates on a host",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" }, 
      { "type": "string",
        "name": "value",
        "doc": "The certificates to apply to a host" } ],
    "errors": [  ],
    "roles": [  ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "plymouth",
        "description": "" } ],
    "implicit": false }, 
  { "name": "set_multipathing",
    "description": "Specifies whether multipathing is enabled",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" }, 
      { "type": "bool",
        "name": "value",
        "doc": "Whether multipathing should be enabled" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "set_iscsi_iqn",
    "description": "Sets the initiator IQN for the host",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" }, 
      { "type": "string",
        "name": "value",
        "doc": "The value to which the IQN should be set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "set_ssl_legacy",
    "description": "Enable/disable SSLv3 for interoperability with older server versions. When this is set to a different value, the host immediately restarts its SSL/TLS listening service; typically this takes less than a second but existing connections to it will be broken. API login sessions will remain valid.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "The host" }, 
      { "type": "bool",
        "name": "value",
        "doc": "True to allow SSLv3 and ciphersuites as used in old XenServer versions" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "implicit": false }, 
  { "name": "disable_display",
    "description": "Disable console output to the physical display device next time this host boots",
    "result": [ "enum host_display", "This host's physical display usage" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cream",
        "description": "" } ],
    "implicit": false }, 
  { "name": "enable_display",
    "description": "Enable console output to the physical display device next time this host boots",
    "result": [ "enum host_display", "This host's physical display usage" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cream",
        "description": "" } ],
    "implicit": false }, 
  { "name": "declare_dead",
    "description": "Declare that a host is dead. This is a dangerous operation, and should only be called if the administrator is absolutely sure the host is definitely dead",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The Host to declare is dead" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "clearwater",
        "description": "Declare that a host is dead. This is a dangerous operation, and should only be called if the administrator is absolutely sure the host is definitely dead" } ],
    "implicit": false }, 
  { "name": "migrate_receive",
    "description": "Prepare to receive a VM, returning a token which can be passed to VM.migrate.",
    "result": [ "(string -> string) map", "A value which should be passed to VM.migrate" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The target host" }, 
      { "type": "network ref",
        "name": "network",
        "doc": "The network through which migration traffic should be received." }, 
      { "type": "(string -> string) map",
        "name": "options",
        "doc": "Extra configuration operations" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Prepare to receive a VM, returning a token which can be passed to VM.migrate." } ],
    "implicit": false }, 
  { "name": "disable_local_storage_caching",
    "description": "Disable the use of a local SR for caching purposes",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Disable the use of a local SR for caching purposes" } ],
    "implicit": false }, 
  { "name": "enable_local_storage_caching",
    "description": "Enable the use of a local SR for caching purposes",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The SR to use as a local cache" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Enable the use of a local SR for caching purposes" } ],
    "implicit": false }, 
  { "name": "reset_cpu_features",
    "description": "Remove the feature mask, such that after a reboot all features of the CPU are enabled.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "" }, 
      { "transition": "removed",
        "release": "dundee",
        "description": "Manual CPU feature setting was removed" } ],
    "implicit": false }, 
  { "name": "set_cpu_features",
    "description": "Set the CPU features to be used after a reboot, if the given features string is valid.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" }, 
      { "type": "string",
        "name": "features",
        "doc": "The features string (32 hexadecimal digits)" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "" }, 
      { "transition": "removed",
        "release": "dundee",
        "description": "Manual CPU feature setting was removed" } ],
    "implicit": false }, 
  { "name": "set_power_on_mode",
    "description": "Set the power-on-mode, host, user and password ",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "The host" }, 
      { "type": "string",
        "name": "power_on_mode",
        "doc": "power-on-mode can be empty,iLO,wake-on-lan, DRAC or other" }, 
      { "type": "(string -> string) map",
        "name": "power_on_config",
        "doc": "Power on config" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Set the power-on-mode, host, user and password " } ],
    "implicit": false }, 
  { "name": "refresh_pack_info",
    "description": "Refresh the list of installed Supplemental Packs.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The Host to modify" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "Use Pool_update.resync_host instead" } ],
    "implicit": false }, 
  { "name": "apply_edition",
    "description": "Change to another edition, or reactivate the current edition after a license has expired. This may be subject to the successful checkout of an appropriate license.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" }, 
      { "type": "string",
        "name": "edition",
        "doc": "The requested edition" }, 
      { "type": "bool",
        "name": "force",
        "doc": "Update the license params even if the apply call fails" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Change to another edition, or reactivate the current edition after a license has expired. This may be subject to the successful checkout of an appropriate license." } ],
    "implicit": false }, 
  { "name": "get_server_certificate",
    "description": "Get the installed server public TLS certificate.",
    "result": [ "string", "The installed server public TLS certificate, in PEM form." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "" }, 
      { "transition": "changed",
        "release": "inverness",
        "description": "Now available to all RBAC roles." } ],
    "implicit": false }, 
  { "name": "retrieve_wlb_evacuate_recommendations",
    "description": "Retrieves recommended host migrations to perform when evacuating the host from the wlb server. If a VM cannot be migrated from the host the reason is listed instead of a recommendation.",
    "result": [ "(VM ref -> string set) map", "VMs and the reasons why they would block evacuation, or their target host recommended by the wlb server" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "The host to query" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Retrieves recommended host migrations to perform when evacuating the host from the wlb server. If a VM cannot be migrated from the host the reason is listed instead of a recommendation." } ],
    "implicit": false }, 
  { "name": "disable_external_auth",
    "description": "This call disables external authentication on the local host",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host whose external authentication should be disabled" }, 
      { "type": "(string -> string) map",
        "name": "config",
        "doc": "Optional parameters as a list of key-values containing the configuration data" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "This call disables external authentication on the local host" } ],
    "implicit": false }, 
  { "name": "enable_external_auth",
    "description": "This call enables external authentication on a host",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host whose external authentication should be enabled" }, 
      { "type": "(string -> string) map",
        "name": "config",
        "doc": "A list of key-values containing the configuration data" }, 
      { "type": "string",
        "name": "service_name",
        "doc": "The name of the service" }, 
      { "type": "string",
        "name": "auth_type",
        "doc": "The type of authentication (e.g. AD for Active Directory)" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "This call enables external authentication on a host" } ],
    "implicit": false }, 
  { "name": "get_server_localtime",
    "description": "This call queries the host's clock for the current time in the host's local timezone",
    "result": [ "datetime", "The current local time" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host whose clock should be queried" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "This call queries the host's clock for the current time in the host's local timezone" } ],
    "implicit": false }, 
  { "name": "get_servertime",
    "description": "This call queries the host's clock for the current time",
    "result": [ "datetime", "The current time" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host whose clock should be queried" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "This call queries the host's clock for the current time" } ],
    "implicit": false }, 
  { "name": "call_extension",
    "description": "Call an API extension on this host",
    "result": [ "string", "Result from the extension" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" }, 
      { "type": "string",
        "name": "call",
        "doc": "Rpc call for the extension" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Call an API extension on this host" } ],
    "implicit": false }, 
  { "name": "has_extension",
    "description": "Return true if the extension is available on the host",
    "result": [ "bool", "True if the extension exists, false otherwise" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" }, 
      { "type": "string",
        "name": "name",
        "doc": "The name of the API call" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Return true if the extension is available on the host" } ],
    "implicit": false }, 
  { "name": "call_plugin",
    "description": "Call an API plugin on this host",
    "result": [ "string", "Result from the plugin" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" }, 
      { "type": "string",
        "name": "plugin",
        "doc": "The name of the plugin" }, 
      { "type": "string",
        "name": "fn",
        "doc": "The name of the function within the plugin" }, 
      { "type": "(string -> string) map",
        "name": "args",
        "doc": "Arguments for the function" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Call an API plugin on this host" } ],
    "implicit": false }, 
  { "name": "create_new_blob",
    "description": "Create a placeholder for a named binary blob of data that is associated with this host",
    "result": [ "blob ref", "The reference of the blob, needed for populating its data" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" }, 
      { "type": "string",
        "name": "name",
        "doc": "The name associated with the blob" }, 
      { "type": "string",
        "name": "mime_type",
        "doc": "The mime type for the data. Empty string translates to application/octet-stream" }, 
      { "type": "bool",
        "name": "public",
        "doc": "True if the blob should be publicly available" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Create a placeholder for a named binary blob of data that is associated with this host" } ],
    "implicit": false }, 
  { "name": "backup_rrds",
    "description": "This causes the RRDs to be backed up to the master",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "Schedule a backup of the RRDs of this host" }, 
      { "type": "float",
        "name": "delay",
        "doc": "Delay in seconds from when the call is received to perform the backup" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "This causes the RRDs to be backed up to the master" } ],
    "implicit": false }, 
  { "name": "sync_data",
    "description": "This causes the synchronisation of the non-database data (messages, RRDs and so on) stored on the master to be synchronised with the host",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host to whom the data should be sent" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "This causes the synchronisation of the non-database data (messages, RRDs and so on) stored on the master to be synchronised with the host" } ],
    "implicit": false }, 
  { "name": "compute_memory_overhead",
    "description": "Computes the virtualization memory overhead of a host.",
    "result": [ "int", "the virtualization memory overhead of the host." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host for which to compute the memory overhead" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Computes the virtualization memory overhead of a host." } ],
    "implicit": false }, 
  { "name": "compute_free_memory",
    "description": "Computes the amount of free memory on the host.",
    "result": [ "int", "the amount of free memory on the host." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host to send the request to" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Computes the amount of free memory on the host." } ],
    "implicit": false }, 
  { "name": "set_hostname_live",
    "description": "Sets the host name to the specified string.  Both the API and lower-level system hostname are changed immediately.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host whose host name to set" }, 
      { "type": "string",
        "name": "hostname",
        "doc": "The new host name" } ],
    "errors": [ 
      { "name": "HOST_NAME_INVALID",
        "doc": "The server name is invalid." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Sets the host name to the specified string.  Both the API and lower-level system hostname are changed immediately." } ],
    "implicit": false }, 
  { "name": "shutdown_agent",
    "description": "Shuts the agent down after a 10 second pause. WARNING: this is a dangerous operation. Any operations in progress will be aborted, and unrecoverable data loss may occur. The caller is responsible for ensuring that there are no operations in progress when this method is called.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Shuts the agent down after a 10 second pause. WARNING: this is a dangerous operation. Any operations in progress will be aborted, and unrecoverable data loss may occur. The caller is responsible for ensuring that there are no operations in progress when this method is called." } ],
    "implicit": false }, 
  { "name": "restart_agent",
    "description": "Restarts the agent after a 10 second pause. WARNING: this is a dangerous operation. Any operations in progress will be aborted, and unrecoverable data loss may occur. The caller is responsible for ensuring that there are no operations in progress when this method is called.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The Host on which you want to restart the agent" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Restarts the agent after a 10 second pause. WARNING: this is a dangerous operation. Any operations in progress will be aborted, and unrecoverable data loss may occur. The caller is responsible for ensuring that there are no operations in progress when this method is called." } ],
    "implicit": false }, 
  { "name": "get_system_status_capabilities",
    "description": "",
    "result": [ "string", "An XML fragment containing the system status capabilities." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host to interrogate" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "" } ],
    "implicit": false }, 
  { "name": "get_management_interface",
    "description": "Returns the management interface for the specified host",
    "result": [ "PIF ref", "The management interface for the host" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "Which host's management interface is required" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "networking",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "tampa",
        "description": "" } ],
    "implicit": false }, 
  { "name": "management_disable",
    "description": "Disable the management network interface",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "networking",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Disable the management network interface" } ],
    "implicit": false }, 
  { "name": "local_management_reconfigure",
    "description": "Reconfigure the management network interface. Should only be used if Host.management_reconfigure is impossible because the network configuration is broken.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "interface",
        "doc": "name of the interface to use as a management interface" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Reconfigure the management network interface. Should only be used if Host.management_reconfigure is impossible because the network configuration is broken." } ],
    "implicit": false }, 
  { "name": "management_reconfigure",
    "description": "Reconfigure the management network interface",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "pif",
        "doc": "reference to a PIF object corresponding to the management interface" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "networking",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Reconfigure the management network interface" } ],
    "implicit": false }, 
  { "name": "syslog_reconfigure",
    "description": "Re-configure syslog logging",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "Tell the host to reread its Host.logging parameters and reconfigure itself accordingly" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Re-configure syslog logging" } ],
    "implicit": false }, 
  { "name": "evacuate",
    "description": "Migrate all VMs off of this host, where possible.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host to evacuate" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Migrate all VMs off of this host, where possible." } ],
    "implicit": false }, 
  { "name": "get_uncooperative_resident_VMs",
    "description": "Return a set of VMs which are not co-operating with the host's memory control system",
    "result": [ "VM ref set", "VMs which are not co-operating" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "The host to query" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Return a set of VMs which are not co-operating with the host's memory control system" }, 
      { "transition": "deprecated",
        "release": "tampa",
        "description": "" } ],
    "implicit": false }, 
  { "name": "get_vms_which_prevent_evacuation",
    "description": "Return a set of VMs which prevent the host being evacuated, with per-VM error codes",
    "result": [ "(VM ref -> string set) map", "VMs which block evacuation together with reasons" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "The host to query" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Return a set of VMs which prevent the host being evacuated, with per-VM error codes" } ],
    "implicit": false }, 
  { "name": "assert_can_evacuate",
    "description": "Check this host can be evacuated.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host to evacuate" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Check this host can be evacuated." } ],
    "implicit": false }, 
  { "name": "forget_data_source_archives",
    "description": "Forget the recorded statistics related to the specified data source",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" }, 
      { "type": "string",
        "name": "data_source",
        "doc": "The data source whose archives are to be forgotten" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Forget the recorded statistics related to the specified data source" } ],
    "implicit": false }, 
  { "name": "query_data_source",
    "description": "Query the latest value of the specified data source",
    "result": [ "float", "The latest value, averaged over the last 5 seconds" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" }, 
      { "type": "string",
        "name": "data_source",
        "doc": "The data source to query" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Query the latest value of the specified data source" } ],
    "implicit": false }, 
  { "name": "record_data_source",
    "description": "Start recording the specified data source",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" }, 
      { "type": "string",
        "name": "data_source",
        "doc": "The data source to record" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Start recording the specified data source" } ],
    "implicit": false }, 
  { "name": "get_data_sources",
    "description": "",
    "result": [ "data_source record set", "A set of data sources" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host to interrogate" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "" } ],
    "implicit": false }, 
  { "name": "emergency_ha_disable",
    "description": "This call disables HA on the local host. This should only be used with extreme care.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "bool",
        "name": "soft",
        "doc": "Disable HA temporarily, revert upon host reboot or further changes, idempotent" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "This call disables HA on the local host. This should only be used with extreme care." } ],
    "implicit": false }, 
  { "name": "power_on",
    "description": "Attempt to power-on the host (if the capability exists).",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The Host to power on" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Attempt to power-on the host (if the capability exists)." } ],
    "implicit": false }, 
  { "name": "destroy",
    "description": "Destroy specified host record in database",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "The host record to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Destroy specified host record in database" } ],
    "implicit": false }, 
  { "name": "license_remove",
    "description": "Remove any license file from the specified host, and switch that host to the unlicensed edition",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host from which any license will be removed" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "indigo",
        "description": "" } ],
    "implicit": false }, 
  { "name": "license_add",
    "description": "Apply a new license to a host",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host to upload the license to" }, 
      { "type": "string",
        "name": "contents",
        "doc": "The contents of the license file, base64 encoded" } ],
    "errors": [ 
      { "name": "LICENSE_PROCESSING_ERROR",
        "doc": "There was an error processing your license. Please contact your support representative." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "indigo",
        "description": "Functionality for parsing license files re-added" } ],
    "implicit": false }, 
  { "name": "license_apply",
    "description": "Apply a new license to a host",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host to upload the license to" }, 
      { "type": "string",
        "name": "contents",
        "doc": "The contents of the license file, base64 encoded" } ],
    "errors": [ 
      { "name": "LICENSE_PROCESSING_ERROR",
        "doc": "There was an error processing your license. Please contact your support representative." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Apply a new license to a host" }, 
      { "transition": "removed",
        "release": "clearwater",
        "description": "Free licenses no longer handled by xapi" } ],
    "implicit": false }, 
  { "name": "list_methods",
    "description": "List all supported methods",
    "result": [ "string set", "The name of every supported method." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "List all supported methods" } ],
    "implicit": false }, 
  { "name": "bugreport_upload",
    "description": "Run xen-bugtool --yestoall and upload the output to support",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host on which to run xen-bugtool" }, 
      { "type": "string",
        "name": "url",
        "doc": "The URL to upload to" }, 
      { "type": "(string -> string) map",
        "name": "options",
        "doc": "Extra configuration operations" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Run xen-bugtool --yestoall and upload the output to support" } ],
    "implicit": false }, 
  { "name": "send_debug_keys",
    "description": "Inject the given string as debugging keys into Xen",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" }, 
      { "type": "string",
        "name": "keys",
        "doc": "The keys to send" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Inject the given string as debugging keys into Xen" } ],
    "implicit": false }, 
  { "name": "get_log",
    "description": "Get the host's log file",
    "result": [ "string", "The contents of the host's primary log file" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The Host to query" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Get the host's log file" } ],
    "implicit": false }, 
  { "name": "dmesg_clear",
    "description": "Get the host xen dmesg, and clear the buffer.",
    "result": [ "string", "dmesg string" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The Host to query" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Get the host xen dmesg, and clear the buffer." } ],
    "implicit": false }, 
  { "name": "dmesg",
    "description": "Get the host xen dmesg.",
    "result": [ "string", "dmesg string" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The Host to query" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Get the host xen dmesg." } ],
    "implicit": false }, 
  { "name": "reboot",
    "description": "Reboot the host. (This function can only be called if there are no currently running VMs on the host and it is disabled.)",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The Host to reboot" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Reboot the host. (This function can only be called if there are no currently running VMs on the host and it is disabled.)" } ],
    "implicit": false }, 
  { "name": "shutdown",
    "description": "Shutdown the host. (This function can only be called if there are no currently running VMs on the host and it is disabled.)",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The Host to shutdown" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Shutdown the host. (This function can only be called if there are no currently running VMs on the host and it is disabled.)" } ],
    "implicit": false }, 
  { "name": "enable",
    "description": "Puts the host into a state in which new VMs can be started.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The Host to enable" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Puts the host into a state in which new VMs can be started." } ],
    "implicit": false }, 
  { "name": "disable",
    "description": "Puts the host into a state in which no new VMs can be started. Currently active VMs on the host continue to execute.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The Host to disable" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Puts the host into a state in which no new VMs can be started. Currently active VMs on the host continue to execute." } ],
    "implicit": false }, 
  { "name": "set_display",
    "description": "Set the display field of the given host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "enum host_display",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cream",
        "description": "indicates whether the host is configured to output its console to a physical display device" } ],
    "implicit": true }, 
  { "name": "remove_from_guest_VCPUs_params",
    "description": "Remove the given key and its corresponding value from the guest_VCPUs_params field of the given host.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "VCPUs params to apply to all resident guests" } ],
    "implicit": true }, 
  { "name": "add_to_guest_VCPUs_params",
    "description": "Add the given key-value pair to the guest_VCPUs_params field of the given host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "VCPUs params to apply to all resident guests" } ],
    "implicit": true }, 
  { "name": "set_guest_VCPUs_params",
    "description": "Set the guest_VCPUs_params field of the given host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "VCPUs params to apply to all resident guests" } ],
    "implicit": true }, 
  { "name": "remove_from_license_server",
    "description": "Remove the given key and its corresponding value from the license_server field of the given host.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Contact information of the license server" } ],
    "implicit": true }, 
  { "name": "add_to_license_server",
    "description": "Add the given key-value pair to the license_server field of the given host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Contact information of the license server" } ],
    "implicit": true }, 
  { "name": "set_license_server",
    "description": "Set the license_server field of the given host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Contact information of the license server" } ],
    "implicit": true }, 
  { "name": "remove_tags",
    "description": "Remove the given value from the tags field of the given host.  If the value is not in that Set, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "add_tags",
    "description": "Add the given value to the tags field of the given host.  If the value is already in that Set, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "set_tags",
    "description": "Set the tags field of the given host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string set",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "set_address",
    "description": "Set the address field of the given host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The address by which this host can be contacted from any other host in the pool" } ],
    "implicit": true }, 
  { "name": "set_hostname",
    "description": "Set the hostname field of the given host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The hostname of this host" } ],
    "implicit": true }, 
  { "name": "set_crash_dump_sr",
    "description": "Set the crash_dump_sr field of the given host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "SR ref",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The SR in which VDIs for crash dumps are created" } ],
    "implicit": true }, 
  { "name": "set_suspend_image_sr",
    "description": "Set the suspend_image_sr field of the given host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "SR ref",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The SR in which VDIs for suspend images are created" } ],
    "implicit": true }, 
  { "name": "remove_from_logging",
    "description": "Remove the given key and its corresponding value from the logging field of the given host.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "logging configuration" } ],
    "implicit": true }, 
  { "name": "add_to_logging",
    "description": "Add the given key-value pair to the logging field of the given host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "logging configuration" } ],
    "implicit": true }, 
  { "name": "set_logging",
    "description": "Set the logging field of the given host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "logging configuration" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given host.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_name_description",
    "description": "Set the name/description field of the given host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "set_name_label",
    "description": "Set the name/label field of the given host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_uefi_certificates",
    "description": "Get the uefi_certificates field of the given host.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "plymouth",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_multipathing",
    "description": "Get the multipathing field of the given host.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_iscsi_iqn",
    "description": "Get the iscsi_iqn field of the given host.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_features",
    "description": "Get the features field of the given host.",
    "result": [ "Feature ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_updates_requiring_reboot",
    "description": "Get the updates_requiring_reboot field of the given host.",
    "result": [ "pool_update ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_control_domain",
    "description": "Get the control_domain field of the given host.",
    "result": [ "VM ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "The control domain (domain 0)" } ],
    "implicit": true }, 
  { "name": "get_virtual_hardware_platform_versions",
    "description": "Get the virtual_hardware_platform_versions field of the given host.",
    "result": [ "int set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cream",
        "description": "The set of versions of the virtual hardware platform that the host can offer to its guests" } ],
    "implicit": true }, 
  { "name": "get_display",
    "description": "Get the display field of the given host.",
    "result": [ "enum host_display", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cream",
        "description": "indicates whether the host is configured to output its console to a physical display device" } ],
    "implicit": true }, 
  { "name": "get_guest_VCPUs_params",
    "description": "Get the guest_VCPUs_params field of the given host.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "VCPUs params to apply to all resident guests" } ],
    "implicit": true }, 
  { "name": "get_ssl_legacy",
    "description": "Get the ssl_legacy field of the given host.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_PUSBs",
    "description": "Get the PUSBs field of the given host.",
    "result": [ "PUSB ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_PGPUs",
    "description": "Get the PGPUs field of the given host.",
    "result": [ "PGPU ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_PCIs",
    "description": "Get the PCIs field of the given host.",
    "result": [ "PCI ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_chipset_info",
    "description": "Get the chipset_info field of the given host.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_local_cache_sr",
    "description": "Get the local_cache_sr field of the given host.",
    "result": [ "SR ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "The SR that is used as a local cache" } ],
    "implicit": true }, 
  { "name": "get_power_on_config",
    "description": "Get the power_on_config field of the given host.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "The power on config" } ],
    "implicit": true }, 
  { "name": "get_power_on_mode",
    "description": "Get the power_on_mode field of the given host.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "The power on mode" } ],
    "implicit": true }, 
  { "name": "get_bios_strings",
    "description": "Get the bios_strings field of the given host.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "BIOS strings" } ],
    "implicit": true }, 
  { "name": "get_license_server",
    "description": "Get the license_server field of the given host.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Contact information of the license server" } ],
    "implicit": true }, 
  { "name": "get_edition",
    "description": "Get the edition field of the given host.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Product edition" } ],
    "implicit": true }, 
  { "name": "get_external_auth_configuration",
    "description": "Get the external_auth_configuration field of the given host.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "configuration specific to external authentication service" } ],
    "implicit": true }, 
  { "name": "get_external_auth_service_name",
    "description": "Get the external_auth_service_name field of the given host.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "name of external authentication service configured; empty if none configured." } ],
    "implicit": true }, 
  { "name": "get_external_auth_type",
    "description": "Get the external_auth_type field of the given host.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "type of external authentication service configured; empty if none configured." } ],
    "implicit": true }, 
  { "name": "get_tags",
    "description": "Get the tags field of the given host.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "get_blobs",
    "description": "Get the blobs field of the given host.",
    "result": [ "(string -> blob ref) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Binary blobs associated with this host" } ],
    "implicit": true }, 
  { "name": "get_ha_network_peers",
    "description": "Get the ha_network_peers field of the given host.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "The set of hosts visible via the network from this host" } ],
    "implicit": true }, 
  { "name": "get_ha_statefiles",
    "description": "Get the ha_statefiles field of the given host.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "The set of statefiles accessible from this host" } ],
    "implicit": true }, 
  { "name": "get_license_params",
    "description": "Get the license_params field of the given host.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "State of the current license" } ],
    "implicit": true }, 
  { "name": "get_metrics",
    "description": "Get the metrics field of the given host.",
    "result": [ "host_metrics ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "metrics associated with this host" } ],
    "implicit": true }, 
  { "name": "get_address",
    "description": "Get the address field of the given host.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The address by which this host can be contacted from any other host in the pool" } ],
    "implicit": true }, 
  { "name": "get_hostname",
    "description": "Get the hostname field of the given host.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The hostname of this host" } ],
    "implicit": true }, 
  { "name": "get_cpu_info",
    "description": "Get the cpu_info field of the given host.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "Details about the physical CPUs on this host" } ],
    "implicit": true }, 
  { "name": "get_host_CPUs",
    "description": "Get the host_CPUs field of the given host.",
    "result": [ "host_cpu ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The physical CPUs on this host" } ],
    "implicit": true }, 
  { "name": "get_PBDs",
    "description": "Get the PBDs field of the given host.",
    "result": [ "PBD ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "physical blockdevices" } ],
    "implicit": true }, 
  { "name": "get_updates",
    "description": "Get the updates field of the given host.",
    "result": [ "pool_update ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Set of updates" } ],
    "implicit": true }, 
  { "name": "get_patches",
    "description": "Get the patches field of the given host.",
    "result": [ "host_patch ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Set of host patches" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_crashdumps",
    "description": "Get the crashdumps field of the given host.",
    "result": [ "host_crashdump ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Set of host crash dumps" } ],
    "implicit": true }, 
  { "name": "get_crash_dump_sr",
    "description": "Get the crash_dump_sr field of the given host.",
    "result": [ "SR ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The SR in which VDIs for crash dumps are created" } ],
    "implicit": true }, 
  { "name": "get_suspend_image_sr",
    "description": "Get the suspend_image_sr field of the given host.",
    "result": [ "SR ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The SR in which VDIs for suspend images are created" } ],
    "implicit": true }, 
  { "name": "get_PIFs",
    "description": "Get the PIFs field of the given host.",
    "result": [ "PIF ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "physical network interfaces" } ],
    "implicit": true }, 
  { "name": "get_logging",
    "description": "Get the logging field of the given host.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "logging configuration" } ],
    "implicit": true }, 
  { "name": "get_resident_VMs",
    "description": "Get the resident_VMs field of the given host.",
    "result": [ "VM ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of VMs currently resident on host" } ],
    "implicit": true }, 
  { "name": "get_supported_bootloaders",
    "description": "Get the supported_bootloaders field of the given host.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a list of the bootloaders installed on the machine" } ],
    "implicit": true }, 
  { "name": "get_sched_policy",
    "description": "Get the sched_policy field of the given host.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Scheduler policy currently in force on this host" } ],
    "implicit": true }, 
  { "name": "get_cpu_configuration",
    "description": "Get the cpu_configuration field of the given host.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The CPU configuration on this host.  May contain keys such as \"nr_nodes\", \"sockets_per_node\", \"cores_per_socket\", or \"threads_per_core\"" } ],
    "implicit": true }, 
  { "name": "get_capabilities",
    "description": "Get the capabilities field of the given host.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Xen capabilities" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given host.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_software_version",
    "description": "Get the software_version field of the given host.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "version strings" } ],
    "implicit": true }, 
  { "name": "get_enabled",
    "description": "Get the enabled field of the given host.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "True if the host is currently enabled" } ],
    "implicit": true }, 
  { "name": "get_API_version_vendor_implementation",
    "description": "Get the API_version/vendor_implementation field of the given host.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "details of vendor implementation" } ],
    "implicit": true }, 
  { "name": "get_API_version_vendor",
    "description": "Get the API_version/vendor field of the given host.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "identification of vendor" } ],
    "implicit": true }, 
  { "name": "get_API_version_minor",
    "description": "Get the API_version/minor field of the given host.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "minor version number" } ],
    "implicit": true }, 
  { "name": "get_API_version_major",
    "description": "Get the API_version/major field of the given host.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "major version number" } ],
    "implicit": true }, 
  { "name": "get_current_operations",
    "description": "Get the current_operations field of the given host.",
    "result": [ "(string -> enum host_allowed_operations) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "implicit": true }, 
  { "name": "get_allowed_operations",
    "description": "Get the allowed_operations field of the given host.",
    "result": [ "enum host_allowed_operations set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "implicit": true }, 
  { "name": "get_memory_overhead",
    "description": "Get the memory/overhead field of the given host.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Virtualization memory overhead (bytes)." } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given host.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given host.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given host.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the host instances with the given label.",
    "result": [ "host ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A physical host" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the host instance with the specified UUID.",
    "result": [ "host ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A physical host" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given host.",
    "result": [ "host record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A physical host" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "host_allowed_operations",
    "values": [ 
      { "name": "provision",
        "doc": "Indicates this host is able to provision another VM" }, 
      { "name": "evacuate",
        "doc": "Indicates this host is evacuating" }, 
      { "name": "shutdown",
        "doc": "Indicates this host is in the process of shutting itself down" }, 
      { "name": "reboot",
        "doc": "Indicates this host is in the process of rebooting" }, 
      { "name": "power_on",
        "doc": "Indicates this host is in the process of being powered on" }, 
      { "name": "vm_start",
        "doc": "This host is starting a VM" }, 
      { "name": "vm_resume",
        "doc": "This host is resuming a VM" }, 
      { "name": "vm_migrate",
        "doc": "This host is the migration target of a VM" } ] }, 
  { "name": "host_display",
    "values": [ 
      { "name": "enabled",
        "doc": "This host is outputting its console to a physical display device" }, 
      { "name": "disable_on_reboot",
        "doc": "The host will stop outputting its console to a physical display device on next boot" }, 
      { "name": "disabled",
        "doc": "This host is not outputting its console to a physical display device" }, 
      { "name": "enable_on_reboot",
        "doc": "The host will start outputting its console to a physical display device on next boot" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "A physical host" } ],
"tag": "" }, { "name": "host_crashdump",
"description": "Represents a host crash dump",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "host",
    "description": "Host the crashdump relates to",
    "type": "host ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Host the crashdump relates to" } ] }, 
  { "name": "timestamp",
    "description": "Time the crash happened",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time the crash happened" } ] }, 
  { "name": "size",
    "description": "Size of the crashdump",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Size of the crashdump" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of host_crashdump references to host_crashdump records for all host_crashdumps known to the system.",
    "result": [ "(host_crashdump ref -> host_crashdump record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Represents a host crash dump" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the host_crashdumps known to the system.",
    "result": [ "host_crashdump ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Represents a host crash dump" } ],
    "implicit": true }, 
  { "name": "upload",
    "description": "Upload the specified host crash dump to a specified URL",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_crashdump ref",
        "name": "self",
        "doc": "The host crashdump to upload" }, 
      { "type": "string",
        "name": "url",
        "doc": "The URL to upload to" }, 
      { "type": "(string -> string) map",
        "name": "options",
        "doc": "Extra configuration operations" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Upload the specified host crash dump to a specified URL" } ],
    "implicit": false }, 
  { "name": "destroy",
    "description": "Destroy specified host crash dump, removing it from the disk.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_crashdump ref",
        "name": "self",
        "doc": "The host crashdump to destroy" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Destroy specified host crash dump, removing it from the disk." } ],
    "implicit": false }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given host_crashdump.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_crashdump ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given host_crashdump.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_crashdump ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given host_crashdump.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_crashdump ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given host_crashdump.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_crashdump ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_size",
    "description": "Get the size field of the given host_crashdump.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_crashdump ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Size of the crashdump" } ],
    "implicit": true }, 
  { "name": "get_timestamp",
    "description": "Get the timestamp field of the given host_crashdump.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_crashdump ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time the crash happened" } ],
    "implicit": true }, 
  { "name": "get_host",
    "description": "Get the host field of the given host_crashdump.",
    "result": [ "host ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_crashdump ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Host the crashdump relates to" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given host_crashdump.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_crashdump ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the host_crashdump instance with the specified UUID.",
    "result": [ "host_crashdump ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Represents a host crash dump" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given host_crashdump.",
    "result": [ "host_crashdump record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_crashdump ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Represents a host crash dump" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "Represents a host crash dump" } ],
"tag": "" }, { "name": "host_patch",
"description": "Represents a patch stored on a server",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "default": "\"\"" }, 
  { "name": "version",
    "description": "Patch version number",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Patch version number" } ] }, 
  { "name": "host",
    "description": "Host the patch relates to",
    "type": "host ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Host the patch relates to" } ] }, 
  { "name": "applied",
    "description": "True if the patch has been applied",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "True if the patch has been applied" } ] }, 
  { "name": "timestamp_applied",
    "description": "Time the patch was applied",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time the patch was applied" } ] }, 
  { "name": "size",
    "description": "Size of the patch",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Size of the patch" } ] }, 
  { "name": "pool_patch",
    "description": "The patch applied",
    "type": "pool_patch ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "The patch applied" } ],
    "default": "Null" }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of host_patch references to host_patch records for all host_patchs known to the system.",
    "result": [ "(host_patch ref -> host_patch record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Represents a patch stored on a server" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the host_patchs known to the system.",
    "result": [ "host_patch ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Represents a patch stored on a server" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "apply",
    "description": "Apply the selected patch and return its output",
    "result": [ "string", "the output of the patch application process" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_patch ref",
        "name": "self",
        "doc": "The patch to apply" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Apply the selected patch and return its output" }, 
      { "transition": "deprecated",
        "release": "miami",
        "description": "" } ],
    "implicit": false }, 
  { "name": "destroy",
    "description": "Destroy the specified host patch, removing it from the disk. This does NOT reverse the patch",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_patch ref",
        "name": "self",
        "doc": "The patch to destroy" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Destroy the specified host patch, removing it from the disk. This does NOT reverse the patch" }, 
      { "transition": "deprecated",
        "release": "miami",
        "description": "" } ],
    "implicit": false }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given host_patch.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_patch ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given host_patch.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_patch ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given host_patch.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_patch ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given host_patch.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_pool_patch",
    "description": "Get the pool_patch field of the given host_patch.",
    "result": [ "pool_patch ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "The patch applied" } ],
    "implicit": true }, 
  { "name": "get_size",
    "description": "Get the size field of the given host_patch.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Size of the patch" } ],
    "implicit": true }, 
  { "name": "get_timestamp_applied",
    "description": "Get the timestamp_applied field of the given host_patch.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time the patch was applied" } ],
    "implicit": true }, 
  { "name": "get_applied",
    "description": "Get the applied field of the given host_patch.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "True if the patch has been applied" } ],
    "implicit": true }, 
  { "name": "get_host",
    "description": "Get the host field of the given host_patch.",
    "result": [ "host ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Host the patch relates to" } ],
    "implicit": true }, 
  { "name": "get_version",
    "description": "Get the version field of the given host_patch.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Patch version number" } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given host_patch.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given host_patch.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given host_patch.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the host_patch instances with the given label.",
    "result": [ "host_patch ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Represents a patch stored on a server" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the host_patch instance with the specified UUID.",
    "result": [ "host_patch ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Represents a patch stored on a server" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given host_patch.",
    "result": [ "host_patch record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_patch ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Represents a patch stored on a server" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "Represents a patch stored on a server" }, 
  { "transition": "deprecated",
    "release": "ely",
    "description": "" } ],
"tag": "" }, { "name": "host_metrics",
"description": "The metrics associated with a host",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "memory_total",
    "description": "Total host memory (bytes)",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Total host memory (bytes)" } ] }, 
  { "name": "memory_free",
    "description": "Free host memory (bytes)",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "memory",
    "lifecycle": [ 
      { "transition": "deprecated",
        "release": "midnight-ride",
        "description": "Will be disabled in favour of RRD" }, 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled in favour of RRD" } ] }, 
  { "name": "live",
    "description": "Pool master thinks this host is live",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Pool master thinks this host is live" } ] }, 
  { "name": "last_updated",
    "description": "Time at which this information was last updated",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time at which this information was last updated" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of host_metrics references to host_metrics records for all host_metrics instances known to the system.",
    "result": [ "(host_metrics ref -> host_metrics record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a host" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the host_metrics instances known to the system.",
    "result": [ "host_metrics ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a host" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given host_metrics.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_metrics ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given host_metrics.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_metrics ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given host_metrics.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_metrics ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given host_metrics.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_last_updated",
    "description": "Get the last_updated field of the given host_metrics.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time at which this information was last updated" } ],
    "implicit": true }, 
  { "name": "get_live",
    "description": "Get the live field of the given host_metrics.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Pool master thinks this host is live" } ],
    "implicit": true }, 
  { "name": "get_memory_free",
    "description": "Get the memory/free field of the given host_metrics.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "deprecated",
        "release": "midnight-ride",
        "description": "Will be disabled in favour of RRD" }, 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled in favour of RRD" } ],
    "implicit": true }, 
  { "name": "get_memory_total",
    "description": "Get the memory/total field of the given host_metrics.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Total host memory (bytes)" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given host_metrics.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the host_metrics instance with the specified UUID.",
    "result": [ "host_metrics ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a host" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given host_metrics.",
    "result": [ "host_metrics record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a host" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "The metrics associated with a host" } ],
"tag": "" }, { "name": "host_cpu",
"description": "A physical CPU",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "host",
    "description": "the host the CPU is in",
    "type": "host ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the host the CPU is in" } ] }, 
  { "name": "number",
    "description": "the number of the physical CPU within the host",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the number of the physical CPU within the host" } ] }, 
  { "name": "vendor",
    "description": "the vendor of the physical CPU",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the vendor of the physical CPU" } ] }, 
  { "name": "speed",
    "description": "the speed of the physical CPU",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the speed of the physical CPU" } ] }, 
  { "name": "modelname",
    "description": "the model name of the physical CPU",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the model name of the physical CPU" } ] }, 
  { "name": "family",
    "description": "the family (number) of the physical CPU",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the family (number) of the physical CPU" } ] }, 
  { "name": "model",
    "description": "the model number of the physical CPU",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the model number of the physical CPU" } ] }, 
  { "name": "stepping",
    "description": "the stepping of the physical CPU",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the stepping of the physical CPU" } ] }, 
  { "name": "flags",
    "description": "the flags of the physical CPU (a decoded version of the features field)",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the flags of the physical CPU (a decoded version of the features field)" } ] }, 
  { "name": "features",
    "description": "the physical CPU feature bitmap",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the physical CPU feature bitmap" } ] }, 
  { "name": "utilisation",
    "description": "the current CPU utilisation",
    "type": "float",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the current CPU utilisation" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of host_cpu references to host_cpu records for all host_cpus known to the system.",
    "result": [ "(host_cpu ref -> host_cpu record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A physical CPU" }, 
      { "transition": "deprecated",
        "release": "midnight-ride",
        "description": "Deprecated in favour of the Host.cpu_info field" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the host_cpus known to the system.",
    "result": [ "host_cpu ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A physical CPU" }, 
      { "transition": "deprecated",
        "release": "midnight-ride",
        "description": "Deprecated in favour of the Host.cpu_info field" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given host_cpu.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_cpu ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given host_cpu.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_cpu ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given host_cpu.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_cpu ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given host_cpu.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_cpu ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_utilisation",
    "description": "Get the utilisation field of the given host_cpu.",
    "result": [ "float", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_cpu ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the current CPU utilisation" } ],
    "implicit": true }, 
  { "name": "get_features",
    "description": "Get the features field of the given host_cpu.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_cpu ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the physical CPU feature bitmap" } ],
    "implicit": true }, 
  { "name": "get_flags",
    "description": "Get the flags field of the given host_cpu.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_cpu ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the flags of the physical CPU (a decoded version of the features field)" } ],
    "implicit": true }, 
  { "name": "get_stepping",
    "description": "Get the stepping field of the given host_cpu.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_cpu ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the stepping of the physical CPU" } ],
    "implicit": true }, 
  { "name": "get_model",
    "description": "Get the model field of the given host_cpu.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_cpu ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the model number of the physical CPU" } ],
    "implicit": true }, 
  { "name": "get_family",
    "description": "Get the family field of the given host_cpu.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_cpu ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the family (number) of the physical CPU" } ],
    "implicit": true }, 
  { "name": "get_modelname",
    "description": "Get the modelname field of the given host_cpu.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_cpu ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the model name of the physical CPU" } ],
    "implicit": true }, 
  { "name": "get_speed",
    "description": "Get the speed field of the given host_cpu.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_cpu ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the speed of the physical CPU" } ],
    "implicit": true }, 
  { "name": "get_vendor",
    "description": "Get the vendor field of the given host_cpu.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_cpu ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the vendor of the physical CPU" } ],
    "implicit": true }, 
  { "name": "get_number",
    "description": "Get the number field of the given host_cpu.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_cpu ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the number of the physical CPU within the host" } ],
    "implicit": true }, 
  { "name": "get_host",
    "description": "Get the host field of the given host_cpu.",
    "result": [ "host ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_cpu ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the host the CPU is in" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given host_cpu.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_cpu ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the host_cpu instance with the specified UUID.",
    "result": [ "host_cpu ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A physical CPU" }, 
      { "transition": "deprecated",
        "release": "midnight-ride",
        "description": "Deprecated in favour of the Host.cpu_info field" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given host_cpu.",
    "result": [ "host_cpu record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host_cpu ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A physical CPU" }, 
      { "transition": "deprecated",
        "release": "midnight-ride",
        "description": "Deprecated in favour of the Host.cpu_info field" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "A physical CPU" }, 
  { "transition": "deprecated",
    "release": "midnight-ride",
    "description": "Deprecated in favour of the Host.cpu_info field" } ],
"tag": "" }, { "name": "network",
"description": "A virtual network",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "default": "\"\"" }, 
  { "name": "allowed_operations",
    "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client.",
    "type": "enum network_operations set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "default": "{}" }, 
  { "name": "current_operations",
    "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task.",
    "type": "(string -> enum network_operations) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "default": "{}" }, 
  { "name": "VIFs",
    "description": "list of connected vifs",
    "type": "VIF ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of connected vifs" } ] }, 
  { "name": "PIFs",
    "description": "list of connected pifs",
    "type": "PIF ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of connected pifs" } ] }, 
  { "name": "MTU",
    "description": "MTU in octets",
    "type": "int",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "MTU in octets" } ],
    "default": "1500" }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ] }, 
  { "name": "bridge",
    "description": "name of the bridge corresponding to this network on the local host",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "" }, 
      { "transition": "changed",
        "release": "falcon",
        "description": "Added to the constructor (network.create)" } ],
    "default": "\"\"" }, 
  { "name": "managed",
    "description": "true if the bridge is managed by xapi",
    "type": "bool",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "default": "true" }, 
  { "name": "blobs",
    "description": "Binary blobs associated with this network",
    "type": "(string -> blob ref) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Binary blobs associated with this network" } ],
    "default": "{}" }, 
  { "name": "tags",
    "description": "user-specified tags for categorization purposes",
    "type": "string set",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "default": "{}" }, 
  { "name": "default_locking_mode",
    "description": "The network will use this value to determine the behaviour of all VIFs where locking_mode = default",
    "type": "enum network_default_locking_mode",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "The network will use this value to determine the behaviour of all VIFs where locking_mode = default" } ],
    "default": "unlocked" }, 
  { "name": "assigned_ips",
    "description": "The IP addresses assigned to VIFs on networks that have active xapi-managed DHCP",
    "type": "(VIF ref -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "creedence",
        "description": "The IP addresses assigned to VIFs on networks that have active xapi-managed DHCP" } ],
    "default": "{}" }, 
  { "name": "purpose",
    "description": "Set of purposes for which the server will use this network",
    "type": "enum network_purpose set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "Set of purposes for which the server will use this network" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of network references to network records for all networks known to the system.",
    "result": [ "(network ref -> network record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual network" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the networks known to the system.",
    "result": [ "network ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual network" } ],
    "implicit": true }, 
  { "name": "remove_purpose",
    "description": "Remove a purpose from a network (if present)",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "The network" }, 
      { "type": "enum network_purpose",
        "name": "value",
        "doc": "The purpose to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "Remove a purpose from a network (if present)" } ],
    "implicit": false }, 
  { "name": "add_purpose",
    "description": "Give a network a new purpose (if not present already)",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "The network" }, 
      { "type": "enum network_purpose",
        "name": "value",
        "doc": "The purpose to add" } ],
    "errors": [ 
      { "name": "NETWORK_INCOMPATIBLE_PURPOSES",
        "doc": "You tried to add a purpose to a network but the new purpose is not compatible with an existing purpose of the network or other networks." } ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "Give a network a new purpose (if not present already)" } ],
    "implicit": false }, 
  { "name": "set_default_locking_mode",
    "description": "Set the default locking mode for VIFs attached to this network",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "network",
        "doc": "The network" }, 
      { "type": "enum network_default_locking_mode",
        "name": "value",
        "doc": "The default locking mode for VIFs attached to this network." } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Set the default locking mode for VIFs attached to this network" } ],
    "implicit": false }, 
  { "name": "create_new_blob",
    "description": "Create a placeholder for a named binary blob of data that is associated with this pool",
    "result": [ "blob ref", "The reference of the blob, needed for populating its data" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "network",
        "doc": "The network" }, 
      { "type": "string",
        "name": "name",
        "doc": "The name associated with the blob" }, 
      { "type": "string",
        "name": "mime_type",
        "doc": "The mime type for the data. Empty string translates to application/octet-stream" }, 
      { "type": "bool",
        "name": "public",
        "doc": "True if the blob should be publicly available" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Create a placeholder for a named binary blob of data that is associated with this pool" } ],
    "implicit": false }, 
  { "name": "remove_tags",
    "description": "Remove the given value from the tags field of the given network.  If the value is not in that Set, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "add_tags",
    "description": "Add the given value to the tags field of the given network.  If the value is already in that Set, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "set_tags",
    "description": "Set the tags field of the given network.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string set",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given network.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given network.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given network.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_MTU",
    "description": "Set the MTU field of the given network.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "int",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "MTU in octets" } ],
    "implicit": true }, 
  { "name": "set_name_description",
    "description": "Set the name/description field of the given network.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "set_name_label",
    "description": "Set the name/label field of the given network.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_purpose",
    "description": "Get the purpose field of the given network.",
    "result": [ "enum network_purpose set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "Set of purposes for which the server will use this network" } ],
    "implicit": true }, 
  { "name": "get_assigned_ips",
    "description": "Get the assigned_ips field of the given network.",
    "result": [ "(VIF ref -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "creedence",
        "description": "The IP addresses assigned to VIFs on networks that have active xapi-managed DHCP" } ],
    "implicit": true }, 
  { "name": "get_default_locking_mode",
    "description": "Get the default_locking_mode field of the given network.",
    "result": [ "enum network_default_locking_mode", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "The network will use this value to determine the behaviour of all VIFs where locking_mode = default" } ],
    "implicit": true }, 
  { "name": "get_tags",
    "description": "Get the tags field of the given network.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "get_blobs",
    "description": "Get the blobs field of the given network.",
    "result": [ "(string -> blob ref) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Binary blobs associated with this network" } ],
    "implicit": true }, 
  { "name": "get_managed",
    "description": "Get the managed field of the given network.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_bridge",
    "description": "Get the bridge field of the given network.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "" }, 
      { "transition": "changed",
        "release": "falcon",
        "description": "Added to the constructor (network.create)" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given network.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_MTU",
    "description": "Get the MTU field of the given network.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "MTU in octets" } ],
    "implicit": true }, 
  { "name": "get_PIFs",
    "description": "Get the PIFs field of the given network.",
    "result": [ "PIF ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of connected pifs" } ],
    "implicit": true }, 
  { "name": "get_VIFs",
    "description": "Get the VIFs field of the given network.",
    "result": [ "VIF ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of connected vifs" } ],
    "implicit": true }, 
  { "name": "get_current_operations",
    "description": "Get the current_operations field of the given network.",
    "result": [ "(string -> enum network_operations) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "implicit": true }, 
  { "name": "get_allowed_operations",
    "description": "Get the allowed_operations field of the given network.",
    "result": [ "enum network_operations set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given network.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given network.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given network.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the network instances with the given label.",
    "result": [ "network ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual network" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy the specified network instance.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual network" } ],
    "implicit": true }, 
  { "name": "create",
    "description": "Create a new network instance, and return its handle.\nThe constructor args are: name_label, name_description, MTU, other_config*, bridge, managed, tags (* = non-optional).",
    "result": [ "network ref", "reference to the newly created object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network record",
        "name": "args",
        "doc": "All constructor arguments" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual network" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the network instance with the specified UUID.",
    "result": [ "network ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual network" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given network.",
    "result": [ "network record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual network" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "network_operations",
    "values": [ 
      { "name": "attaching",
        "doc": "Indicates this network is attaching to a VIF or PIF" } ] }, 
  { "name": "network_default_locking_mode",
    "values": [ 
      { "name": "unlocked",
        "doc": "Treat all VIFs on this network with locking_mode = 'default' as if they have locking_mode = 'unlocked'" }, 
      { "name": "disabled",
        "doc": "Treat all VIFs on this network with locking_mode = 'default' as if they have locking_mode = 'disabled'" } ] }, 
  { "name": "network_purpose",
    "values": [ 
      { "name": "nbd",
        "doc": "Network Block Device service using TLS" }, 
      { "name": "insecure_nbd",
        "doc": "Network Block Device service without integrity or confidentiality: NOT RECOMMENDED" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "A virtual network" } ],
"tag": "networking" }, { "name": "VIF",
"description": "A virtual network interface",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "allowed_operations",
    "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client.",
    "type": "enum vif_operations set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "default": "{}" }, 
  { "name": "current_operations",
    "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task.",
    "type": "(string -> enum vif_operations) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "default": "{}" }, 
  { "name": "device",
    "description": "order in which VIF backends are created by xapi",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "order in which VIF backends are created by xapi" } ] }, 
  { "name": "network",
    "description": "virtual network to which this vif is connected",
    "type": "network ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "virtual network to which this vif is connected" } ] }, 
  { "name": "VM",
    "description": "virtual machine to which this vif is connected",
    "type": "VM ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "virtual machine to which this vif is connected" } ] }, 
  { "name": "MAC",
    "description": "ethernet MAC address of virtual interface, as exposed to guest",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "ethernet MAC address of virtual interface, as exposed to guest" } ] }, 
  { "name": "MTU",
    "description": "MTU in octets",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "MTU in octets" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ] }, 
  { "name": "currently_attached",
    "description": "is the device currently attached (erased on reboot)",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "is the device currently attached (erased on reboot)" } ] }, 
  { "name": "status_code",
    "description": "error/success code associated with last attach-operation (erased on reboot)",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "error/success code associated with last attach-operation (erased on reboot)" } ] }, 
  { "name": "status_detail",
    "description": "error/success information associated with last attach-operation status (erased on reboot)",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "error/success information associated with last attach-operation status (erased on reboot)" } ] }, 
  { "name": "runtime_properties",
    "description": "Device runtime properties",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Device runtime properties" } ] }, 
  { "name": "qos_algorithm_type",
    "description": "QoS algorithm to use",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "QoS algorithm to use" } ] }, 
  { "name": "qos_algorithm_params",
    "description": "parameters for chosen QoS algorithm",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "parameters for chosen QoS algorithm" } ] }, 
  { "name": "qos_supported_algorithms",
    "description": "supported QoS algorithms for this VIF",
    "type": "string set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "supported QoS algorithms for this VIF" } ] }, 
  { "name": "metrics",
    "description": "metrics associated with this VIF",
    "type": "VIF_metrics ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled in favour of RRDs" } ] }, 
  { "name": "MAC_autogenerated",
    "description": "true if the MAC was autogenerated; false indicates it was set manually",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "true if the MAC was autogenerated; false indicates it was set manually" } ],
    "default": "false" }, 
  { "name": "locking_mode",
    "description": "current locking mode of the VIF",
    "type": "enum vif_locking_mode",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "current locking mode of the VIF" } ],
    "default": "network_default" }, 
  { "name": "ipv4_allowed",
    "description": "A list of IPv4 addresses which can be used to filter traffic passing through this VIF",
    "type": "string set",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "A list of IPv4 addresses which can be used to filter traffic passing through this VIF" } ],
    "default": "{}" }, 
  { "name": "ipv6_allowed",
    "description": "A list of IPv6 addresses which can be used to filter traffic passing through this VIF",
    "type": "string set",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "A list of IPv6 addresses which can be used to filter traffic passing through this VIF" } ],
    "default": "{}" }, 
  { "name": "ipv4_configuration_mode",
    "description": "Determines whether IPv4 addresses are configured on the VIF",
    "type": "enum vif_ipv4_configuration_mode",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Determines whether IPv4 addresses are configured on the VIF" } ],
    "default": "None" }, 
  { "name": "ipv4_addresses",
    "description": "IPv4 addresses in CIDR format",
    "type": "string set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "IPv4 addresses in CIDR format" } ],
    "default": "{}" }, 
  { "name": "ipv4_gateway",
    "description": "IPv4 gateway (the empty string means that no gateway is set)",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "IPv4 gateway (the empty string means that no gateway is set)" } ],
    "default": "\"\"" }, 
  { "name": "ipv6_configuration_mode",
    "description": "Determines whether IPv6 addresses are configured on the VIF",
    "type": "enum vif_ipv6_configuration_mode",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Determines whether IPv6 addresses are configured on the VIF" } ],
    "default": "None" }, 
  { "name": "ipv6_addresses",
    "description": "IPv6 addresses in CIDR format",
    "type": "string set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "IPv6 addresses in CIDR format" } ],
    "default": "{}" }, 
  { "name": "ipv6_gateway",
    "description": "IPv6 gateway (the empty string means that no gateway is set)",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "IPv6 gateway (the empty string means that no gateway is set)" } ],
    "default": "\"\"" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of VIF references to VIF records for all VIFs known to the system.",
    "result": [ "(VIF ref -> VIF record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual network interface" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the VIFs known to the system.",
    "result": [ "VIF ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual network interface" } ],
    "implicit": true }, 
  { "name": "configure_ipv6",
    "description": "Configure IPv6 settings for this virtual interface",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "The VIF to configure" }, 
      { "type": "enum vif_ipv6_configuration_mode",
        "name": "mode",
        "doc": "Whether to use static or no IPv6 assignment" }, 
      { "type": "string",
        "name": "address",
        "doc": "The IPv6 address in <addr>/<prefix length> format (for static mode only)" }, 
      { "type": "string",
        "name": "gateway",
        "doc": "The IPv6 gateway (for static mode only; leave empty to not set a gateway)" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Configure IPv6 settings for this virtual interface" } ],
    "implicit": false }, 
  { "name": "configure_ipv4",
    "description": "Configure IPv4 settings for this virtual interface",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "The VIF to configure" }, 
      { "type": "enum vif_ipv4_configuration_mode",
        "name": "mode",
        "doc": "Whether to use static or no IPv4 assignment" }, 
      { "type": "string",
        "name": "address",
        "doc": "The IPv4 address in <addr>/<prefix length> format (for static mode only)" }, 
      { "type": "string",
        "name": "gateway",
        "doc": "The IPv4 gateway (for static mode only; leave empty to not set a gateway)" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Configure IPv4 settings for this virtual interface" } ],
    "implicit": false }, 
  { "name": "remove_ipv6_allowed",
    "description": "Removes an IPv6 address from this VIF",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "The VIF from which the IP address will be removed" }, 
      { "type": "string",
        "name": "value",
        "doc": "The IP address which will be removed from the VIF" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Removes an IPv6 address from this VIF" } ],
    "implicit": false }, 
  { "name": "add_ipv6_allowed",
    "description": "Associates an IPv6 address with this VIF",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "The VIF which the IP address will be associated with" }, 
      { "type": "string",
        "name": "value",
        "doc": "The IP address which will be associated with the VIF" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Associates an IPv6 address with this VIF" } ],
    "implicit": false }, 
  { "name": "set_ipv6_allowed",
    "description": "Set the IPv6 addresses to which traffic on this VIF can be restricted",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "The VIF which the IP addresses will be associated with" }, 
      { "type": "string set",
        "name": "value",
        "doc": "The IP addresses which will be associated with the VIF" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Set the IPv6 addresses to which traffic on this VIF can be restricted" } ],
    "implicit": false }, 
  { "name": "remove_ipv4_allowed",
    "description": "Removes an IPv4 address from this VIF",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "The VIF from which the IP address will be removed" }, 
      { "type": "string",
        "name": "value",
        "doc": "The IP address which will be removed from the VIF" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Removes an IPv4 address from this VIF" } ],
    "implicit": false }, 
  { "name": "add_ipv4_allowed",
    "description": "Associates an IPv4 address with this VIF",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "The VIF which the IP address will be associated with" }, 
      { "type": "string",
        "name": "value",
        "doc": "The IP address which will be associated with the VIF" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Associates an IPv4 address with this VIF" } ],
    "implicit": false }, 
  { "name": "set_ipv4_allowed",
    "description": "Set the IPv4 addresses to which traffic on this VIF can be restricted",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "The VIF which the IP addresses will be associated with" }, 
      { "type": "string set",
        "name": "value",
        "doc": "The IP addresses which will be associated with the VIF" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Set the IPv4 addresses to which traffic on this VIF can be restricted" } ],
    "implicit": false }, 
  { "name": "set_locking_mode",
    "description": "Set the locking mode for this VIF",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "The VIF whose locking mode will be set" }, 
      { "type": "enum vif_locking_mode",
        "name": "value",
        "doc": "The new locking mode for the VIF" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Set the locking mode for this VIF" } ],
    "implicit": false }, 
  { "name": "move",
    "description": "Move the specified VIF to the specified network, even while the VM is running",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "The VIF to move" }, 
      { "type": "network ref",
        "name": "network",
        "doc": "The network to move it to" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "Move the specified VIF to the specified network, even while the VM is running" } ],
    "implicit": false }, 
  { "name": "unplug_force",
    "description": "Forcibly unplug the specified VIF",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "The VIF to forcibly unplug" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Forcibly unplug the specified VIF" } ],
    "implicit": false }, 
  { "name": "unplug",
    "description": "Hot-unplug the specified VIF, dynamically unattaching it from the running VM",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "The VIF to hot-unplug" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Hot-unplug the specified VIF, dynamically unattaching it from the running VM" } ],
    "implicit": false }, 
  { "name": "plug",
    "description": "Hotplug the specified VIF, dynamically attaching it to the running VM",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "The VIF to hotplug" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Hotplug the specified VIF, dynamically attaching it to the running VM" } ],
    "implicit": false }, 
  { "name": "remove_from_qos_algorithm_params",
    "description": "Remove the given key and its corresponding value from the qos/algorithm_params field of the given VIF.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "parameters for chosen QoS algorithm" } ],
    "implicit": true }, 
  { "name": "add_to_qos_algorithm_params",
    "description": "Add the given key-value pair to the qos/algorithm_params field of the given VIF.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "parameters for chosen QoS algorithm" } ],
    "implicit": true }, 
  { "name": "set_qos_algorithm_params",
    "description": "Set the qos/algorithm_params field of the given VIF.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "parameters for chosen QoS algorithm" } ],
    "implicit": true }, 
  { "name": "set_qos_algorithm_type",
    "description": "Set the qos/algorithm_type field of the given VIF.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "QoS algorithm to use" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given VIF.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given VIF.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given VIF.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_ipv6_gateway",
    "description": "Get the ipv6_gateway field of the given VIF.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "IPv6 gateway (the empty string means that no gateway is set)" } ],
    "implicit": true }, 
  { "name": "get_ipv6_addresses",
    "description": "Get the ipv6_addresses field of the given VIF.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "IPv6 addresses in CIDR format" } ],
    "implicit": true }, 
  { "name": "get_ipv6_configuration_mode",
    "description": "Get the ipv6_configuration_mode field of the given VIF.",
    "result": [ "enum vif_ipv6_configuration_mode", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Determines whether IPv6 addresses are configured on the VIF" } ],
    "implicit": true }, 
  { "name": "get_ipv4_gateway",
    "description": "Get the ipv4_gateway field of the given VIF.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "IPv4 gateway (the empty string means that no gateway is set)" } ],
    "implicit": true }, 
  { "name": "get_ipv4_addresses",
    "description": "Get the ipv4_addresses field of the given VIF.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "IPv4 addresses in CIDR format" } ],
    "implicit": true }, 
  { "name": "get_ipv4_configuration_mode",
    "description": "Get the ipv4_configuration_mode field of the given VIF.",
    "result": [ "enum vif_ipv4_configuration_mode", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Determines whether IPv4 addresses are configured on the VIF" } ],
    "implicit": true }, 
  { "name": "get_ipv6_allowed",
    "description": "Get the ipv6_allowed field of the given VIF.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "A list of IPv6 addresses which can be used to filter traffic passing through this VIF" } ],
    "implicit": true }, 
  { "name": "get_ipv4_allowed",
    "description": "Get the ipv4_allowed field of the given VIF.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "A list of IPv4 addresses which can be used to filter traffic passing through this VIF" } ],
    "implicit": true }, 
  { "name": "get_locking_mode",
    "description": "Get the locking_mode field of the given VIF.",
    "result": [ "enum vif_locking_mode", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "current locking mode of the VIF" } ],
    "implicit": true }, 
  { "name": "get_MAC_autogenerated",
    "description": "Get the MAC_autogenerated field of the given VIF.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "true if the MAC was autogenerated; false indicates it was set manually" } ],
    "implicit": true }, 
  { "name": "get_metrics",
    "description": "Get the metrics field of the given VIF.",
    "result": [ "VIF_metrics ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled in favour of RRDs" } ],
    "implicit": true }, 
  { "name": "get_qos_supported_algorithms",
    "description": "Get the qos/supported_algorithms field of the given VIF.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "supported QoS algorithms for this VIF" } ],
    "implicit": true }, 
  { "name": "get_qos_algorithm_params",
    "description": "Get the qos/algorithm_params field of the given VIF.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "parameters for chosen QoS algorithm" } ],
    "implicit": true }, 
  { "name": "get_qos_algorithm_type",
    "description": "Get the qos/algorithm_type field of the given VIF.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "QoS algorithm to use" } ],
    "implicit": true }, 
  { "name": "get_runtime_properties",
    "description": "Get the runtime_properties field of the given VIF.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Device runtime properties" } ],
    "implicit": true }, 
  { "name": "get_status_detail",
    "description": "Get the status_detail field of the given VIF.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "error/success information associated with last attach-operation status (erased on reboot)" } ],
    "implicit": true }, 
  { "name": "get_status_code",
    "description": "Get the status_code field of the given VIF.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "error/success code associated with last attach-operation (erased on reboot)" } ],
    "implicit": true }, 
  { "name": "get_currently_attached",
    "description": "Get the currently_attached field of the given VIF.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "is the device currently attached (erased on reboot)" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given VIF.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_MTU",
    "description": "Get the MTU field of the given VIF.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "MTU in octets" } ],
    "implicit": true }, 
  { "name": "get_MAC",
    "description": "Get the MAC field of the given VIF.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "ethernet MAC address of virtual interface, as exposed to guest" } ],
    "implicit": true }, 
  { "name": "get_VM",
    "description": "Get the VM field of the given VIF.",
    "result": [ "VM ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "virtual machine to which this vif is connected" } ],
    "implicit": true }, 
  { "name": "get_network",
    "description": "Get the network field of the given VIF.",
    "result": [ "network ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "virtual network to which this vif is connected" } ],
    "implicit": true }, 
  { "name": "get_device",
    "description": "Get the device field of the given VIF.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "order in which VIF backends are created by xapi" } ],
    "implicit": true }, 
  { "name": "get_current_operations",
    "description": "Get the current_operations field of the given VIF.",
    "result": [ "(string -> enum vif_operations) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "implicit": true }, 
  { "name": "get_allowed_operations",
    "description": "Get the allowed_operations field of the given VIF.",
    "result": [ "enum vif_operations set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given VIF.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy the specified VIF instance.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual network interface" } ],
    "implicit": true }, 
  { "name": "create",
    "description": "Create a new VIF instance, and return its handle.\nThe constructor args are: device*, network*, VM*, MAC*, MTU*, other_config*, qos_algorithm_type*, qos_algorithm_params*, locking_mode, ipv4_allowed, ipv6_allowed (* = non-optional).",
    "result": [ "VIF ref", "reference to the newly created object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF record",
        "name": "args",
        "doc": "All constructor arguments" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual network interface" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the VIF instance with the specified UUID.",
    "result": [ "VIF ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual network interface" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given VIF.",
    "result": [ "VIF record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual network interface" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "vif_operations",
    "values": [ 
      { "name": "attach",
        "doc": "Attempting to attach this VIF to a VM" }, 
      { "name": "plug",
        "doc": "Attempting to hotplug this VIF" }, 
      { "name": "unplug",
        "doc": "Attempting to hot unplug this VIF" } ] }, 
  { "name": "vif_locking_mode",
    "values": [ 
      { "name": "network_default",
        "doc": "No specific configuration set - default network policy applies" }, 
      { "name": "locked",
        "doc": "Only traffic to a specific MAC and a list of IPv4 or IPv6 addresses is permitted" }, 
      { "name": "unlocked",
        "doc": "All traffic is permitted" }, 
      { "name": "disabled",
        "doc": "No traffic is permitted" } ] }, 
  { "name": "vif_ipv4_configuration_mode",
    "values": [ 
      { "name": "None",
        "doc": "Follow the default IPv4 configuration of the guest (this is guest-dependent)" }, 
      { "name": "Static",
        "doc": "Static IPv4 address configuration" } ] }, 
  { "name": "vif_ipv6_configuration_mode",
    "values": [ 
      { "name": "None",
        "doc": "Follow the default IPv6 configuration of the guest (this is guest-dependent)" }, 
      { "name": "Static",
        "doc": "Static IPv6 address configuration" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "A virtual network interface" } ],
"tag": "networking" }, { "name": "VIF_metrics",
"description": "The metrics associated with a virtual network device",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "io_read_kbs",
    "description": "Read bandwidth (KiB/s)",
    "type": "float",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled and replaced by RRDs" } ] }, 
  { "name": "io_write_kbs",
    "description": "Write bandwidth (KiB/s)",
    "type": "float",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled and replaced by RRDs" } ] }, 
  { "name": "last_updated",
    "description": "Time at which this information was last updated",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time at which this information was last updated" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of VIF_metrics references to VIF_metrics records for all VIF_metrics instances known to the system.",
    "result": [ "(VIF_metrics ref -> VIF_metrics record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a virtual network device" }, 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled in favour of RRDs" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the VIF_metrics instances known to the system.",
    "result": [ "VIF_metrics ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a virtual network device" }, 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled in favour of RRDs" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given VIF_metrics.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given VIF_metrics.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given VIF_metrics.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given VIF_metrics.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_last_updated",
    "description": "Get the last_updated field of the given VIF_metrics.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time at which this information was last updated" } ],
    "implicit": true }, 
  { "name": "get_io_write_kbs",
    "description": "Get the io/write_kbs field of the given VIF_metrics.",
    "result": [ "float", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled and replaced by RRDs" } ],
    "implicit": true }, 
  { "name": "get_io_read_kbs",
    "description": "Get the io/read_kbs field of the given VIF_metrics.",
    "result": [ "float", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled and replaced by RRDs" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given VIF_metrics.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the VIF_metrics instance with the specified UUID.",
    "result": [ "VIF_metrics ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a virtual network device" }, 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled in favour of RRDs" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given VIF_metrics.",
    "result": [ "VIF_metrics record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a virtual network device" }, 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled in favour of RRDs" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "The metrics associated with a virtual network device" }, 
  { "transition": "removed",
    "release": "tampa",
    "description": "Disabled in favour of RRDs" } ],
"tag": "networking" }, { "name": "PIF",
"description": "A physical network interface (note separate VLANs are represented as several PIFs)",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "device",
    "description": "machine-readable name of the interface (e.g. eth0)",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "machine-readable name of the interface (e.g. eth0)" } ] }, 
  { "name": "network",
    "description": "virtual network to which this pif is connected",
    "type": "network ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "virtual network to which this pif is connected" } ] }, 
  { "name": "host",
    "description": "physical machine to which this pif is connected",
    "type": "host ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "physical machine to which this pif is connected" } ] }, 
  { "name": "MAC",
    "description": "ethernet MAC address of physical interface",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "ethernet MAC address of physical interface" } ] }, 
  { "name": "MTU",
    "description": "MTU in octets",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "MTU in octets" } ] }, 
  { "name": "VLAN",
    "description": "VLAN tag for all traffic passing through this interface",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "VLAN tag for all traffic passing through this interface" } ] }, 
  { "name": "metrics",
    "description": "metrics associated with this PIF",
    "type": "PIF_metrics ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "metrics associated with this PIF" } ] }, 
  { "name": "physical",
    "description": "true if this represents a physical network interface",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "true if this represents a physical network interface" } ],
    "default": "false" }, 
  { "name": "currently_attached",
    "description": "true if this interface is online",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "true if this interface is online" } ],
    "default": "true" }, 
  { "name": "ip_configuration_mode",
    "description": "Sets if and how this interface gets an IP address",
    "type": "enum ip_configuration_mode",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Sets if and how this interface gets an IP address" } ],
    "default": "None" }, 
  { "name": "IP",
    "description": "IP address",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "IP address" } ],
    "default": "\"\"" }, 
  { "name": "netmask",
    "description": "IP netmask",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "IP netmask" } ],
    "default": "\"\"" }, 
  { "name": "gateway",
    "description": "IP gateway",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "IP gateway" } ],
    "default": "\"\"" }, 
  { "name": "DNS",
    "description": "Comma separated list of the IP addresses of the DNS servers to use",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Comma separated list of the IP addresses of the DNS servers to use" } ],
    "default": "\"\"" }, 
  { "name": "bond_slave_of",
    "description": "Indicates which bond this interface is part of",
    "type": "Bond ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Indicates which bond this interface is part of" } ],
    "default": "Null" }, 
  { "name": "bond_master_of",
    "description": "Indicates this PIF represents the results of a bond",
    "type": "Bond ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Indicates this PIF represents the results of a bond" } ] }, 
  { "name": "VLAN_master_of",
    "description": "Indicates wich VLAN this interface receives untagged traffic from",
    "type": "VLAN ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Indicates wich VLAN this interface receives untagged traffic from" } ],
    "default": "Null" }, 
  { "name": "VLAN_slave_of",
    "description": "Indicates which VLANs this interface transmits tagged traffic to",
    "type": "VLAN ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Indicates which VLANs this interface transmits tagged traffic to" } ] }, 
  { "name": "management",
    "description": "Indicates whether the control software is listening for connections on this interface",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Indicates whether the control software is listening for connections on this interface" } ],
    "default": "false" }, 
  { "name": "other_config",
    "description": "Additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Additional configuration" } ],
    "default": "{}" }, 
  { "name": "disallow_unplug",
    "description": "Prevent this PIF from being unplugged; set this to notify the management tool-stack that the PIF has a special use and should not be unplugged under any circumstances (e.g. because you're running storage traffic over it)",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Prevent this PIF from being unplugged; set this to notify the management tool-stack that the PIF has a special use and should not be unplugged under any circumstances (e.g. because you're running storage traffic over it)" } ],
    "default": "false" }, 
  { "name": "tunnel_access_PIF_of",
    "description": "Indicates to which tunnel this PIF gives access",
    "type": "tunnel ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Indicates to which tunnel this PIF gives access" } ] }, 
  { "name": "tunnel_transport_PIF_of",
    "description": "Indicates to which tunnel this PIF provides transport",
    "type": "tunnel ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Indicates to which tunnel this PIF provides transport" } ] }, 
  { "name": "ipv6_configuration_mode",
    "description": "Sets if and how this interface gets an IPv6 address",
    "type": "enum ipv6_configuration_mode",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "tampa",
        "description": "" } ],
    "default": "None" }, 
  { "name": "IPv6",
    "description": "IPv6 address",
    "type": "string set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "tampa",
        "description": "" } ],
    "default": "{}" }, 
  { "name": "ipv6_gateway",
    "description": "IPv6 gateway",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "tampa",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "primary_address_type",
    "description": "Which protocol should define the primary address of this interface",
    "type": "enum primary_address_type",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "tampa",
        "description": "" } ],
    "default": "IPv4" }, 
  { "name": "managed",
    "description": "Indicates whether the interface is managed by xapi. If it is not, then xapi will not configure the interface, the commands PIF.plug/unplug/reconfigure_ip(v6) cannot be used, nor can the interface be bonded or have VLANs based on top through xapi.",
    "type": "bool",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-productisation",
        "description": "" } ],
    "default": "true" }, 
  { "name": "properties",
    "description": "Additional configuration properties for the interface.",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "creedence",
        "description": "" } ],
    "default": "{}" }, 
  { "name": "capabilities",
    "description": "Additional capabilities on the interface.",
    "type": "string set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "default": "{}" }, 
  { "name": "igmp_snooping_status",
    "description": "The IGMP snooping status of the corresponding network bridge",
    "type": "enum pif_igmp_status",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "unknown" }, 
  { "name": "sriov_physical_PIF_of",
    "description": "Indicates which network_sriov this interface is physical of",
    "type": "network_sriov ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "Indicates which network_sriov this interface is physical of" } ] }, 
  { "name": "sriov_logical_PIF_of",
    "description": "Indicates which network_sriov this interface is logical of",
    "type": "network_sriov ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "Indicates which network_sriov this interface is logical of" } ] }, 
  { "name": "PCI",
    "description": "Link to underlying PCI device",
    "type": "PCI ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "default": "OpaqueRef:NULL" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of PIF references to PIF records for all PIFs known to the system.",
    "result": [ "(PIF ref -> PIF record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A physical network interface (note separate VLANs are represented as several PIFs)" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the PIFs known to the system.",
    "result": [ "PIF ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A physical network interface (note separate VLANs are represented as several PIFs)" } ],
    "implicit": true }, 
  { "name": "set_property",
    "description": "Set the value of a property of the PIF",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "The PIF" }, 
      { "type": "string",
        "name": "name",
        "doc": "The property name" }, 
      { "type": "string",
        "name": "value",
        "doc": "The property value" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "creedence",
        "description": "" } ],
    "implicit": false }, 
  { "name": "db_forget",
    "description": "Destroy a PIF database record.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "The ref of the PIF whose database record should be destroyed" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Destroy a PIF database record." } ],
    "implicit": false }, 
  { "name": "db_introduce",
    "description": "Create a new PIF record in the database only",
    "result": [ "PIF ref", "The ref of the newly created PIF record." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "device",
        "doc": "" }, 
      { "type": "network ref",
        "name": "network",
        "doc": "" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "" }, 
      { "type": "string",
        "name": "MAC",
        "doc": "" }, 
      { "type": "int",
        "name": "MTU",
        "doc": "" }, 
      { "type": "int",
        "name": "VLAN",
        "doc": "" }, 
      { "type": "bool",
        "name": "physical",
        "doc": "" }, 
      { "type": "enum ip_configuration_mode",
        "name": "ip_configuration_mode",
        "doc": "" }, 
      { "type": "string",
        "name": "IP",
        "doc": "" }, 
      { "type": "string",
        "name": "netmask",
        "doc": "" }, 
      { "type": "string",
        "name": "gateway",
        "doc": "" }, 
      { "type": "string",
        "name": "DNS",
        "doc": "" }, 
      { "type": "Bond ref",
        "name": "bond_slave_of",
        "doc": "" }, 
      { "type": "VLAN ref",
        "name": "VLAN_master_of",
        "doc": "" }, 
      { "type": "bool",
        "name": "management",
        "doc": "" }, 
      { "type": "(string -> string) map",
        "name": "other_config",
        "doc": "" }, 
      { "type": "bool",
        "name": "disallow_unplug",
        "doc": "" }, 
      { "type": "enum ipv6_configuration_mode",
        "name": "ipv6_configuration_mode",
        "doc": "" }, 
      { "type": "string set",
        "name": "IPv6",
        "doc": "" }, 
      { "type": "string",
        "name": "ipv6_gateway",
        "doc": "" }, 
      { "type": "enum primary_address_type",
        "name": "primary_address_type",
        "doc": "" }, 
      { "type": "bool",
        "name": "managed",
        "doc": "" }, 
      { "type": "(string -> string) map",
        "name": "properties",
        "doc": "" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Create a new PIF record in the database only" } ],
    "implicit": false }, 
  { "name": "plug",
    "description": "Attempt to bring up a physical interface",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "the PIF object to plug" } ],
    "errors": [ 
      { "name": "TRANSPORT_PIF_NOT_CONFIGURED",
        "doc": "The tunnel transport PIF has no IP configuration set." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Attempt to bring up a physical interface" } ],
    "implicit": false }, 
  { "name": "set_disallow_unplug",
    "description": "Set whether unplugging the PIF is allowed",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "Reference to the object" }, 
      { "type": "bool",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [ 
      { "name": "OTHER_OPERATION_IN_PROGRESS",
        "doc": "Another operation involving the object is currently in progress" }, 
      { "name": "CLUSTERING_ENABLED",
        "doc": "An operation was attempted while clustering was enabled on the cluster_host." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Set whether unplugging the PIF is allowed" } ],
    "implicit": false }, 
  { "name": "unplug",
    "description": "Attempt to bring down a physical interface",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "the PIF object to unplug" } ],
    "errors": [ 
      { "name": "HA_OPERATION_WOULD_BREAK_FAILOVER_PLAN",
        "doc": "This operation cannot be performed because it would invalidate VM failover planning such that the system would be unable to guarantee to restart protected VMs after a Host failure." }, 
      { "name": "VIF_IN_USE",
        "doc": "Network has active VIFs" }, 
      { "name": "PIF_DOES_NOT_ALLOW_UNPLUG",
        "doc": "The operation you requested cannot be performed because the specified PIF does not allow unplug." }, 
      { "name": "PIF_HAS_FCOE_SR_IN_USE",
        "doc": "The operation you requested cannot be performed because the specified PIF has FCoE SR in use." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Attempt to bring down a physical interface" } ],
    "implicit": false }, 
  { "name": "forget",
    "description": "Destroy the PIF object matching a particular network interface",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "The PIF object to destroy" } ],
    "errors": [ 
      { "name": "PIF_TUNNEL_STILL_EXISTS",
        "doc": "Operation cannot proceed while a tunnel exists on this interface." }, 
      { "name": "CLUSTERING_ENABLED",
        "doc": "An operation was attempted while clustering was enabled on the cluster_host." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Destroy the PIF object matching a particular network interface" } ],
    "implicit": false }, 
  { "name": "introduce",
    "description": "Create a PIF object matching a particular network interface",
    "result": [ "PIF ref", "The reference of the created PIF object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host on which the interface exists" }, 
      { "type": "string",
        "name": "MAC",
        "doc": "The MAC address of the interface" }, 
      { "type": "string",
        "name": "device",
        "doc": "The device name to use for the interface" }, 
      { "type": "bool",
        "name": "managed",
        "doc": "Indicates whether the interface is managed by xapi (defaults to \"true\")" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Create a PIF object matching a particular network interface" } ],
    "implicit": false }, 
  { "name": "scan",
    "description": "Scan for physical interfaces on a host and create PIF objects to represent them",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host on which to scan" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Scan for physical interfaces on a host and create PIF objects to represent them" } ],
    "implicit": false }, 
  { "name": "set_primary_address_type",
    "description": "Change the primary address type used by this PIF",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "the PIF object to reconfigure" }, 
      { "type": "enum primary_address_type",
        "name": "primary_address_type",
        "doc": "Whether to prefer IPv4 or IPv6 connections" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "tampa",
        "description": "" } ],
    "implicit": false }, 
  { "name": "reconfigure_ipv6",
    "description": "Reconfigure the IPv6 address settings for this interface",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "the PIF object to reconfigure" }, 
      { "type": "enum ipv6_configuration_mode",
        "name": "mode",
        "doc": "whether to use dynamic/static/no-assignment" }, 
      { "type": "string",
        "name": "IPv6",
        "doc": "the new IPv6 address (in <addr>/<prefix length> format)" }, 
      { "type": "string",
        "name": "gateway",
        "doc": "the new gateway" }, 
      { "type": "string",
        "name": "DNS",
        "doc": "the new DNS settings" } ],
    "errors": [ 
      { "name": "CLUSTERING_ENABLED",
        "doc": "An operation was attempted while clustering was enabled on the cluster_host." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "tampa",
        "description": "" } ],
    "implicit": false }, 
  { "name": "reconfigure_ip",
    "description": "Reconfigure the IP address settings for this interface",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "the PIF object to reconfigure" }, 
      { "type": "enum ip_configuration_mode",
        "name": "mode",
        "doc": "whether to use dynamic/static/no-assignment" }, 
      { "type": "string",
        "name": "IP",
        "doc": "the new IP address" }, 
      { "type": "string",
        "name": "netmask",
        "doc": "the new netmask" }, 
      { "type": "string",
        "name": "gateway",
        "doc": "the new gateway" }, 
      { "type": "string",
        "name": "DNS",
        "doc": "the new DNS settings" } ],
    "errors": [ 
      { "name": "CLUSTERING_ENABLED",
        "doc": "An operation was attempted while clustering was enabled on the cluster_host." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Reconfigure the IP address settings for this interface" } ],
    "implicit": false }, 
  { "name": "destroy",
    "description": "Destroy the PIF object (provided it is a VLAN interface). This call is deprecated: use VLAN.destroy or Bond.destroy instead",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "the PIF object to destroy" } ],
    "errors": [ 
      { "name": "PIF_IS_PHYSICAL",
        "doc": "You tried to destroy a PIF, but it represents an aspect of the physical host configuration, and so cannot be destroyed. The parameter echoes the PIF handle you gave." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Destroy the PIF object (provided it is a VLAN interface)" }, 
      { "transition": "deprecated",
        "release": "miami",
        "description": "Replaced by VLAN.destroy and Bond.destroy" } ],
    "implicit": false }, 
  { "name": "create_VLAN",
    "description": "Create a VLAN interface from an existing physical interface. This call is deprecated: use VLAN.create instead",
    "result": [ "PIF ref", "The reference of the created PIF object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "device",
        "doc": "physical interface on which to create the VLAN interface" }, 
      { "type": "network ref",
        "name": "network",
        "doc": "network to which this interface should be connected" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "physical machine to which this PIF is connected" }, 
      { "type": "int",
        "name": "VLAN",
        "doc": "VLAN tag for the new interface" } ],
    "errors": [ 
      { "name": "VLAN_TAG_INVALID",
        "doc": "You tried to create a VLAN, but the tag you gave was invalid -- it must be between 0 and 4094. The parameter echoes the VLAN tag you gave." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Create a VLAN interface from an existing physical interface" }, 
      { "transition": "deprecated",
        "release": "miami",
        "description": "Replaced by VLAN.create" } ],
    "implicit": false }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given PIF.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given PIF.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given PIF.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Additional configuration" } ],
    "implicit": true }, 
  { "name": "get_PCI",
    "description": "Get the PCI field of the given PIF.",
    "result": [ "PCI ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_sriov_logical_PIF_of",
    "description": "Get the sriov_logical_PIF_of field of the given PIF.",
    "result": [ "network_sriov ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "Indicates which network_sriov this interface is logical of" } ],
    "implicit": true }, 
  { "name": "get_sriov_physical_PIF_of",
    "description": "Get the sriov_physical_PIF_of field of the given PIF.",
    "result": [ "network_sriov ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "Indicates which network_sriov this interface is physical of" } ],
    "implicit": true }, 
  { "name": "get_igmp_snooping_status",
    "description": "Get the igmp_snooping_status field of the given PIF.",
    "result": [ "enum pif_igmp_status", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_capabilities",
    "description": "Get the capabilities field of the given PIF.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_properties",
    "description": "Get the properties field of the given PIF.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "creedence",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_managed",
    "description": "Get the managed field of the given PIF.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-productisation",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_primary_address_type",
    "description": "Get the primary_address_type field of the given PIF.",
    "result": [ "enum primary_address_type", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "tampa",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_ipv6_gateway",
    "description": "Get the ipv6_gateway field of the given PIF.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "tampa",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_IPv6",
    "description": "Get the IPv6 field of the given PIF.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "tampa",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_ipv6_configuration_mode",
    "description": "Get the ipv6_configuration_mode field of the given PIF.",
    "result": [ "enum ipv6_configuration_mode", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "tampa",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_tunnel_transport_PIF_of",
    "description": "Get the tunnel_transport_PIF_of field of the given PIF.",
    "result": [ "tunnel ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Indicates to which tunnel this PIF provides transport" } ],
    "implicit": true }, 
  { "name": "get_tunnel_access_PIF_of",
    "description": "Get the tunnel_access_PIF_of field of the given PIF.",
    "result": [ "tunnel ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Indicates to which tunnel this PIF gives access" } ],
    "implicit": true }, 
  { "name": "get_disallow_unplug",
    "description": "Get the disallow_unplug field of the given PIF.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Prevent this PIF from being unplugged; set this to notify the management tool-stack that the PIF has a special use and should not be unplugged under any circumstances (e.g. because you're running storage traffic over it)" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given PIF.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Additional configuration" } ],
    "implicit": true }, 
  { "name": "get_management",
    "description": "Get the management field of the given PIF.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Indicates whether the control software is listening for connections on this interface" } ],
    "implicit": true }, 
  { "name": "get_VLAN_slave_of",
    "description": "Get the VLAN_slave_of field of the given PIF.",
    "result": [ "VLAN ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Indicates which VLANs this interface transmits tagged traffic to" } ],
    "implicit": true }, 
  { "name": "get_VLAN_master_of",
    "description": "Get the VLAN_master_of field of the given PIF.",
    "result": [ "VLAN ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Indicates wich VLAN this interface receives untagged traffic from" } ],
    "implicit": true }, 
  { "name": "get_bond_master_of",
    "description": "Get the bond_master_of field of the given PIF.",
    "result": [ "Bond ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Indicates this PIF represents the results of a bond" } ],
    "implicit": true }, 
  { "name": "get_bond_slave_of",
    "description": "Get the bond_slave_of field of the given PIF.",
    "result": [ "Bond ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Indicates which bond this interface is part of" } ],
    "implicit": true }, 
  { "name": "get_DNS",
    "description": "Get the DNS field of the given PIF.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Comma separated list of the IP addresses of the DNS servers to use" } ],
    "implicit": true }, 
  { "name": "get_gateway",
    "description": "Get the gateway field of the given PIF.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "IP gateway" } ],
    "implicit": true }, 
  { "name": "get_netmask",
    "description": "Get the netmask field of the given PIF.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "IP netmask" } ],
    "implicit": true }, 
  { "name": "get_IP",
    "description": "Get the IP field of the given PIF.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "IP address" } ],
    "implicit": true }, 
  { "name": "get_ip_configuration_mode",
    "description": "Get the ip_configuration_mode field of the given PIF.",
    "result": [ "enum ip_configuration_mode", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Sets if and how this interface gets an IP address" } ],
    "implicit": true }, 
  { "name": "get_currently_attached",
    "description": "Get the currently_attached field of the given PIF.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "true if this interface is online" } ],
    "implicit": true }, 
  { "name": "get_physical",
    "description": "Get the physical field of the given PIF.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "true if this represents a physical network interface" } ],
    "implicit": true }, 
  { "name": "get_metrics",
    "description": "Get the metrics field of the given PIF.",
    "result": [ "PIF_metrics ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "metrics associated with this PIF" } ],
    "implicit": true }, 
  { "name": "get_VLAN",
    "description": "Get the VLAN field of the given PIF.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "VLAN tag for all traffic passing through this interface" } ],
    "implicit": true }, 
  { "name": "get_MTU",
    "description": "Get the MTU field of the given PIF.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "MTU in octets" } ],
    "implicit": true }, 
  { "name": "get_MAC",
    "description": "Get the MAC field of the given PIF.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "ethernet MAC address of physical interface" } ],
    "implicit": true }, 
  { "name": "get_host",
    "description": "Get the host field of the given PIF.",
    "result": [ "host ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "physical machine to which this pif is connected" } ],
    "implicit": true }, 
  { "name": "get_network",
    "description": "Get the network field of the given PIF.",
    "result": [ "network ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "virtual network to which this pif is connected" } ],
    "implicit": true }, 
  { "name": "get_device",
    "description": "Get the device field of the given PIF.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "machine-readable name of the interface (e.g. eth0)" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given PIF.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the PIF instance with the specified UUID.",
    "result": [ "PIF ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A physical network interface (note separate VLANs are represented as several PIFs)" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given PIF.",
    "result": [ "PIF record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A physical network interface (note separate VLANs are represented as several PIFs)" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "pif_igmp_status",
    "values": [ 
      { "name": "enabled",
        "doc": "IGMP Snooping is enabled in the corresponding backend bridge.'" }, 
      { "name": "disabled",
        "doc": "IGMP Snooping is disabled in the corresponding backend bridge.'" }, 
      { "name": "unknown",
        "doc": "IGMP snooping status is unknown. If this is a VLAN master, then please consult the underlying VLAN slave PIF." } ] }, 
  { "name": "ip_configuration_mode",
    "values": [ 
      { "name": "None",
        "doc": "Do not acquire an IP address" }, 
      { "name": "DHCP",
        "doc": "Acquire an IP address by DHCP" }, 
      { "name": "Static",
        "doc": "Static IP address configuration" } ] }, 
  { "name": "ipv6_configuration_mode",
    "values": [ 
      { "name": "None",
        "doc": "Do not acquire an IPv6 address" }, 
      { "name": "DHCP",
        "doc": "Acquire an IPv6 address by DHCP" }, 
      { "name": "Static",
        "doc": "Static IPv6 address configuration" }, 
      { "name": "Autoconf",
        "doc": "Router assigned prefix delegation IPv6 allocation" } ] }, 
  { "name": "primary_address_type",
    "values": [ 
      { "name": "IPv4",
        "doc": "Primary address is the IPv4 address" }, 
      { "name": "IPv6",
        "doc": "Primary address is the IPv6 address" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "A physical network interface (note separate VLANs are represented as several PIFs)" } ],
"tag": "networking" }, { "name": "PIF_metrics",
"description": "The metrics associated with a physical network interface",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "io_read_kbs",
    "description": "Read bandwidth (KiB/s)",
    "type": "float",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled and replaced by RRDs" } ] }, 
  { "name": "io_write_kbs",
    "description": "Write bandwidth (KiB/s)",
    "type": "float",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled and replaced by RRDs" } ] }, 
  { "name": "carrier",
    "description": "Report if the PIF got a carrier or not",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Report if the PIF got a carrier or not" } ] }, 
  { "name": "vendor_id",
    "description": "Report vendor ID",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Report vendor ID" } ] }, 
  { "name": "vendor_name",
    "description": "Report vendor name",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Report vendor name" } ] }, 
  { "name": "device_id",
    "description": "Report device ID",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Report device ID" } ] }, 
  { "name": "device_name",
    "description": "Report device name",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Report device name" } ] }, 
  { "name": "speed",
    "description": "Speed of the link (if available)",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Speed of the link (if available)" } ] }, 
  { "name": "duplex",
    "description": "Full duplex capability of the link (if available)",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Full duplex capability of the link (if available)" } ] }, 
  { "name": "pci_bus_path",
    "description": "PCI bus path of the pif (if available)",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "PCI bus path of the pif (if available)" } ] }, 
  { "name": "last_updated",
    "description": "Time at which this information was last updated",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time at which this information was last updated" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of PIF_metrics references to PIF_metrics records for all PIF_metrics instances known to the system.",
    "result": [ "(PIF_metrics ref -> PIF_metrics record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a physical network interface" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the PIF_metrics instances known to the system.",
    "result": [ "PIF_metrics ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a physical network interface" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given PIF_metrics.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given PIF_metrics.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given PIF_metrics.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given PIF_metrics.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_last_updated",
    "description": "Get the last_updated field of the given PIF_metrics.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time at which this information was last updated" } ],
    "implicit": true }, 
  { "name": "get_pci_bus_path",
    "description": "Get the pci_bus_path field of the given PIF_metrics.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "PCI bus path of the pif (if available)" } ],
    "implicit": true }, 
  { "name": "get_duplex",
    "description": "Get the duplex field of the given PIF_metrics.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Full duplex capability of the link (if available)" } ],
    "implicit": true }, 
  { "name": "get_speed",
    "description": "Get the speed field of the given PIF_metrics.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Speed of the link (if available)" } ],
    "implicit": true }, 
  { "name": "get_device_name",
    "description": "Get the device_name field of the given PIF_metrics.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Report device name" } ],
    "implicit": true }, 
  { "name": "get_device_id",
    "description": "Get the device_id field of the given PIF_metrics.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Report device ID" } ],
    "implicit": true }, 
  { "name": "get_vendor_name",
    "description": "Get the vendor_name field of the given PIF_metrics.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Report vendor name" } ],
    "implicit": true }, 
  { "name": "get_vendor_id",
    "description": "Get the vendor_id field of the given PIF_metrics.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Report vendor ID" } ],
    "implicit": true }, 
  { "name": "get_carrier",
    "description": "Get the carrier field of the given PIF_metrics.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Report if the PIF got a carrier or not" } ],
    "implicit": true }, 
  { "name": "get_io_write_kbs",
    "description": "Get the io/write_kbs field of the given PIF_metrics.",
    "result": [ "float", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled and replaced by RRDs" } ],
    "implicit": true }, 
  { "name": "get_io_read_kbs",
    "description": "Get the io/read_kbs field of the given PIF_metrics.",
    "result": [ "float", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled and replaced by RRDs" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given PIF_metrics.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the PIF_metrics instance with the specified UUID.",
    "result": [ "PIF_metrics ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a physical network interface" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given PIF_metrics.",
    "result": [ "PIF_metrics record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a physical network interface" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "The metrics associated with a physical network interface" } ],
"tag": "networking" }, { "name": "Bond",
"description": "",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "master",
    "description": "The bonded interface",
    "type": "PIF ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "The bonded interface" } ],
    "default": "Null" }, 
  { "name": "slaves",
    "description": "The interfaces which are part of this bond",
    "type": "PIF ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "The interfaces which are part of this bond" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "default": "{}" }, 
  { "name": "primary_slave",
    "description": "The PIF of which the IP configuration and MAC were copied to the bond, and which will receive all configuration/VLANs/VIFs on the bond if the bond is destroyed",
    "type": "PIF ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "mode",
    "description": "The algorithm used to distribute traffic among the bonded NICs",
    "type": "enum bond_mode",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "balance-slb" }, 
  { "name": "properties",
    "description": "Additional configuration properties specific to the bond mode.",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Additional configuration properties specific to the bond mode." } ],
    "default": "{}" }, 
  { "name": "links_up",
    "description": "Number of links up in this bond",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Number of links up in this bond" } ],
    "default": "0" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of Bond references to Bond records for all Bonds known to the system.",
    "result": [ "(Bond ref -> Bond record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the Bonds known to the system.",
    "result": [ "Bond ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "" } ],
    "implicit": true }, 
  { "name": "set_property",
    "description": "Set the value of a property of the bond",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Bond ref",
        "name": "self",
        "doc": "The bond" }, 
      { "type": "string",
        "name": "name",
        "doc": "The property name" }, 
      { "type": "string",
        "name": "value",
        "doc": "The property value" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Set the value of a property of the bond" } ],
    "implicit": false }, 
  { "name": "set_mode",
    "description": "Change the bond mode",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Bond ref",
        "name": "self",
        "doc": "The bond" }, 
      { "type": "enum bond_mode",
        "name": "value",
        "doc": "The new bond mode" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": false }, 
  { "name": "destroy",
    "description": "Destroy an interface bond",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Bond ref",
        "name": "self",
        "doc": "Bond to destroy" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Destroy an interface bond" } ],
    "implicit": false }, 
  { "name": "create",
    "description": "Create an interface bond",
    "result": [ "Bond ref", "The reference of the created Bond object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "network",
        "doc": "Network to add the bonded PIF to" }, 
      { "type": "PIF ref set",
        "name": "members",
        "doc": "PIFs to add to this bond" }, 
      { "type": "string",
        "name": "MAC",
        "doc": "The MAC address to use on the bond itself. If this parameter is the empty string then the bond will inherit its MAC address from the primary slave." }, 
      { "type": "enum bond_mode",
        "name": "mode",
        "doc": "Bonding mode to use for the new bond" }, 
      { "type": "(string -> string) map",
        "name": "properties",
        "doc": "Additional configuration parameters specific to the bond mode" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Create an interface bond" } ],
    "implicit": false }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given Bond.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Bond ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given Bond.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Bond ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given Bond.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Bond ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_links_up",
    "description": "Get the links_up field of the given Bond.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Bond ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Number of links up in this bond" } ],
    "implicit": true }, 
  { "name": "get_properties",
    "description": "Get the properties field of the given Bond.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Bond ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Additional configuration properties specific to the bond mode." } ],
    "implicit": true }, 
  { "name": "get_mode",
    "description": "Get the mode field of the given Bond.",
    "result": [ "enum bond_mode", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Bond ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_primary_slave",
    "description": "Get the primary_slave field of the given Bond.",
    "result": [ "PIF ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Bond ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given Bond.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Bond ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_slaves",
    "description": "Get the slaves field of the given Bond.",
    "result": [ "PIF ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Bond ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "The interfaces which are part of this bond" } ],
    "implicit": true }, 
  { "name": "get_master",
    "description": "Get the master field of the given Bond.",
    "result": [ "PIF ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Bond ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "The bonded interface" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given Bond.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Bond ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the Bond instance with the specified UUID.",
    "result": [ "Bond ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given Bond.",
    "result": [ "Bond record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Bond ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "bond_mode",
    "values": [ 
      { "name": "balance-slb",
        "doc": "Source-level balancing" }, 
      { "name": "active-backup",
        "doc": "Active/passive bonding: only one NIC is carrying traffic" }, 
      { "name": "lacp",
        "doc": "Link aggregation control protocol" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "miami",
    "description": "" } ],
"tag": "networking" }, { "name": "VLAN",
"description": "A VLAN mux/demux",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "tagged_PIF",
    "description": "interface on which traffic is tagged",
    "type": "PIF ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "interface on which traffic is tagged" } ],
    "default": "Null" }, 
  { "name": "untagged_PIF",
    "description": "interface on which traffic is untagged",
    "type": "PIF ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "interface on which traffic is untagged" } ],
    "default": "Null" }, 
  { "name": "tag",
    "description": "VLAN tag in use",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "VLAN tag in use" } ],
    "default": "-1" }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of VLAN references to VLAN records for all VLANs known to the system.",
    "result": [ "(VLAN ref -> VLAN record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "A VLAN mux/demux" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the VLANs known to the system.",
    "result": [ "VLAN ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "A VLAN mux/demux" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy a VLAN mux/demuxer",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VLAN ref",
        "name": "self",
        "doc": "VLAN mux/demuxer to destroy" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Destroy a VLAN mux/demuxer" } ],
    "implicit": false }, 
  { "name": "create",
    "description": "Create a VLAN mux/demuxer",
    "result": [ "VLAN ref", "The reference of the created VLAN object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "tagged_PIF",
        "doc": "PIF which receives the tagged traffic" }, 
      { "type": "int",
        "name": "tag",
        "doc": "VLAN tag to use" }, 
      { "type": "network ref",
        "name": "network",
        "doc": "Network to receive the untagged traffic" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Create a VLAN mux/demuxer" } ],
    "implicit": false }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given VLAN.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VLAN ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given VLAN.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VLAN ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given VLAN.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VLAN ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given VLAN.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VLAN ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_tag",
    "description": "Get the tag field of the given VLAN.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VLAN ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "VLAN tag in use" } ],
    "implicit": true }, 
  { "name": "get_untagged_PIF",
    "description": "Get the untagged_PIF field of the given VLAN.",
    "result": [ "PIF ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VLAN ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "interface on which traffic is untagged" } ],
    "implicit": true }, 
  { "name": "get_tagged_PIF",
    "description": "Get the tagged_PIF field of the given VLAN.",
    "result": [ "PIF ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VLAN ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "interface on which traffic is tagged" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given VLAN.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VLAN ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the VLAN instance with the specified UUID.",
    "result": [ "VLAN ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "A VLAN mux/demux" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given VLAN.",
    "result": [ "VLAN record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VLAN ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "A VLAN mux/demux" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "miami",
    "description": "A VLAN mux/demux" } ],
"tag": "networking" }, { "name": "SM",
"description": "A storage manager plugin",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "default": "\"\"" }, 
  { "name": "type",
    "description": "SR.type",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "SR.type" } ] }, 
  { "name": "vendor",
    "description": "Vendor who created this plugin",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Vendor who created this plugin" } ] }, 
  { "name": "copyright",
    "description": "Entity which owns the copyright of this plugin",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Entity which owns the copyright of this plugin" } ] }, 
  { "name": "version",
    "description": "Version of the plugin",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Version of the plugin" } ] }, 
  { "name": "required_api_version",
    "description": "Minimum SM API version required on the server",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Minimum SM API version required on the server" } ] }, 
  { "name": "configuration",
    "description": "names and descriptions of device config keys",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "names and descriptions of device config keys" } ] }, 
  { "name": "capabilities",
    "description": "capabilities of the SM plugin",
    "type": "string set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "deprecated",
        "release": "clearwater",
        "description": "Use SM.features instead" } ],
    "default": "{}" }, 
  { "name": "features",
    "description": "capabilities of the SM plugin, with capability version numbers",
    "type": "(string -> int) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "clearwater",
        "description": "capabilities of the SM plugin, with capability version numbers" } ],
    "default": "{}" }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "default": "{}" }, 
  { "name": "driver_filename",
    "description": "filename of the storage driver",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "filename of the storage driver" } ],
    "default": "\"\"" }, 
  { "name": "required_cluster_stack",
    "description": "The storage plugin requires that one of these cluster stacks is configured and running.",
    "type": "string set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "The storage plugin requires that one of these cluster stacks is configured and running." } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of SM references to SM records for all SMs known to the system.",
    "result": [ "(SM ref -> SM record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A storage manager plugin" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the SMs known to the system.",
    "result": [ "SM ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A storage manager plugin" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given SM.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given SM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given SM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SM ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_required_cluster_stack",
    "description": "Get the required_cluster_stack field of the given SM.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "The storage plugin requires that one of these cluster stacks is configured and running." } ],
    "implicit": true }, 
  { "name": "get_driver_filename",
    "description": "Get the driver_filename field of the given SM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "filename of the storage driver" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given SM.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_features",
    "description": "Get the features field of the given SM.",
    "result": [ "(string -> int) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "clearwater",
        "description": "capabilities of the SM plugin, with capability version numbers" } ],
    "implicit": true }, 
  { "name": "get_capabilities",
    "description": "Get the capabilities field of the given SM.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "deprecated",
        "release": "clearwater",
        "description": "Use SM.features instead" } ],
    "implicit": true }, 
  { "name": "get_configuration",
    "description": "Get the configuration field of the given SM.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "names and descriptions of device config keys" } ],
    "implicit": true }, 
  { "name": "get_required_api_version",
    "description": "Get the required_api_version field of the given SM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Minimum SM API version required on the server" } ],
    "implicit": true }, 
  { "name": "get_version",
    "description": "Get the version field of the given SM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Version of the plugin" } ],
    "implicit": true }, 
  { "name": "get_copyright",
    "description": "Get the copyright field of the given SM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Entity which owns the copyright of this plugin" } ],
    "implicit": true }, 
  { "name": "get_vendor",
    "description": "Get the vendor field of the given SM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Vendor who created this plugin" } ],
    "implicit": true }, 
  { "name": "get_type",
    "description": "Get the type field of the given SM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "SR.type" } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given SM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given SM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given SM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the SM instances with the given label.",
    "result": [ "SM ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A storage manager plugin" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the SM instance with the specified UUID.",
    "result": [ "SM ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A storage manager plugin" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given SM.",
    "result": [ "SM record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A storage manager plugin" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "A storage manager plugin" } ],
"tag": "" }, { "name": "SR",
"description": "A storage repository",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "default": "\"\"" }, 
  { "name": "allowed_operations",
    "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client.",
    "type": "enum storage_operations set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "default": "{}" }, 
  { "name": "current_operations",
    "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task.",
    "type": "(string -> enum storage_operations) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "default": "{}" }, 
  { "name": "VDIs",
    "description": "all virtual disks known to this storage repository",
    "type": "VDI ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "all virtual disks known to this storage repository" } ] }, 
  { "name": "PBDs",
    "description": "describes how particular hosts can see this storage repository",
    "type": "PBD ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "describes how particular hosts can see this storage repository" } ] }, 
  { "name": "virtual_allocation",
    "description": "sum of virtual_sizes of all VDIs in this storage repository (in bytes)",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "sum of virtual_sizes of all VDIs in this storage repository (in bytes)" } ] }, 
  { "name": "physical_utilisation",
    "description": "physical space currently utilised on this storage repository (in bytes). Note that for sparse disk formats, physical_utilisation may be less than virtual_allocation",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "physical space currently utilised on this storage repository (in bytes). Note that for sparse disk formats, physical_utilisation may be less than virtual_allocation" } ] }, 
  { "name": "physical_size",
    "description": "total physical size of the repository (in bytes)",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "total physical size of the repository (in bytes)" } ] }, 
  { "name": "type",
    "description": "type of the storage repository",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "type of the storage repository" } ] }, 
  { "name": "content_type",
    "description": "the type of the SR's content, if required (e.g. ISOs)",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the type of the SR's content, if required (e.g. ISOs)" } ] }, 
  { "name": "shared",
    "description": "true if this SR is (capable of being) shared between multiple hosts",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if this SR is (capable of being) shared between multiple hosts" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ] }, 
  { "name": "tags",
    "description": "user-specified tags for categorization purposes",
    "type": "string set",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "default": "{}" }, 
  { "name": "sm_config",
    "description": "SM dependent data",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "SM dependent data" } ],
    "default": "{}" }, 
  { "name": "blobs",
    "description": "Binary blobs associated with this SR",
    "type": "(string -> blob ref) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Binary blobs associated with this SR" } ],
    "default": "{}" }, 
  { "name": "local_cache_enabled",
    "description": "True if this SR is assigned to be the local cache for its host",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "True if this SR is assigned to be the local cache for its host" } ],
    "default": "false" }, 
  { "name": "introduced_by",
    "description": "The disaster recovery task which introduced this SR",
    "type": "DR_task ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "The disaster recovery task which introduced this SR" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "clustered",
    "description": "True if the SR is using aggregated local storage",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "default": "false" }, 
  { "name": "is_tools_sr",
    "description": "True if this is the SR that contains the Tools ISO VDIs",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "default": "false" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of SR references to SR records for all SRs known to the system.",
    "result": [ "(SR ref -> SR record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A storage repository" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the SRs known to the system.",
    "result": [ "SR ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A storage repository" } ],
    "implicit": true }, 
  { "name": "forget_data_source_archives",
    "description": "Forget the recorded statistics related to the specified data source",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The SR" }, 
      { "type": "string",
        "name": "data_source",
        "doc": "The data source whose archives are to be forgotten" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Forget the recorded statistics related to the specified data source" } ],
    "implicit": false }, 
  { "name": "query_data_source",
    "description": "Query the latest value of the specified data source",
    "result": [ "float", "The latest value, averaged over the last 5 seconds" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The SR" }, 
      { "type": "string",
        "name": "data_source",
        "doc": "The data source to query" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Query the latest value of the specified data source" } ],
    "implicit": false }, 
  { "name": "record_data_source",
    "description": "Start recording the specified data source",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The SR" }, 
      { "type": "string",
        "name": "data_source",
        "doc": "The data source to record" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Start recording the specified data source" } ],
    "implicit": false }, 
  { "name": "get_data_sources",
    "description": "",
    "result": [ "data_source record set", "A set of data sources" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The SR to interrogate" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "implicit": false }, 
  { "name": "disable_database_replication",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The SR to which metadata should be no longer replicated" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": false }, 
  { "name": "enable_database_replication",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The SR to which metadata should be replicated" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": false }, 
  { "name": "assert_supports_database_replication",
    "description": "Returns successfully if the given SR supports database replication. Otherwise returns an error to explain why not.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The SR to query" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Returns successfully if the given SR supports database replication. Otherwise returns an error to explain why not." } ],
    "implicit": false }, 
  { "name": "assert_can_host_ha_statefile",
    "description": "Returns successfully if the given SR can host an HA statefile. Otherwise returns an error to explain why not",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The SR to query" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Returns successfully if the given SR can host an HA statefile. Otherwise returns an error to explain why not" } ],
    "implicit": false }, 
  { "name": "set_physical_size",
    "description": "Sets the SR's physical_size field",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "The SR to modify" }, 
      { "type": "int",
        "name": "value",
        "doc": "The new value of the SR's physical_size" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Sets the SR's physical_size field" } ],
    "implicit": false }, 
  { "name": "create_new_blob",
    "description": "Create a placeholder for a named binary blob of data that is associated with this SR",
    "result": [ "blob ref", "The reference of the blob, needed for populating its data" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The SR" }, 
      { "type": "string",
        "name": "name",
        "doc": "The name associated with the blob" }, 
      { "type": "string",
        "name": "mime_type",
        "doc": "The mime type for the data. Empty string translates to application/octet-stream" }, 
      { "type": "bool",
        "name": "public",
        "doc": "True if the blob should be publicly available" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Create a placeholder for a named binary blob of data that is associated with this SR" } ],
    "implicit": false }, 
  { "name": "set_name_description",
    "description": "Set the name description of the SR",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The SR" }, 
      { "type": "string",
        "name": "value",
        "doc": "The name description for the SR" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Set the name description of the SR" } ],
    "implicit": false }, 
  { "name": "set_name_label",
    "description": "Set the name label of the SR",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The SR" }, 
      { "type": "string",
        "name": "value",
        "doc": "The name label for the SR" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Set the name label of the SR" } ],
    "implicit": false }, 
  { "name": "set_shared",
    "description": "Sets the shared flag on the SR",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The SR" }, 
      { "type": "bool",
        "name": "value",
        "doc": "True if the SR is shared" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Sets the shared flag on the SR" } ],
    "implicit": false }, 
  { "name": "probe_ext",
    "description": "Perform a backend-specific scan, using the given device_config.  If the device_config is complete, then this will return a list of the SRs present of this type on the device, if any.  If the device_config is partial, then a backend-specific scan will be performed, returning results that will guide the user in improving the device_config.",
    "result": [ "probe_result record set", "A set of records containing the scan results." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host to create/make the SR on" }, 
      { "type": "(string -> string) map",
        "name": "device_config",
        "doc": "The device config string that will be passed to backend SR driver" }, 
      { "type": "string",
        "name": "type",
        "doc": "The type of the SR; used to specify the SR backend driver to use" }, 
      { "type": "(string -> string) map",
        "name": "sm_config",
        "doc": "Storage backend specific configuration options" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "probe",
    "description": "Perform a backend-specific scan, using the given device_config.  If the device_config is complete, then this will return a list of the SRs present of this type on the device, if any.  If the device_config is partial, then a backend-specific scan will be performed, returning results that will guide the user in improving the device_config.",
    "result": [ "string", "An XML fragment containing the scan results.  These are specific to the scan being performed, and the backend." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host to create/make the SR on" }, 
      { "type": "(string -> string) map",
        "name": "device_config",
        "doc": "The device config string that will be passed to backend SR driver" }, 
      { "type": "string",
        "name": "type",
        "doc": "The type of the SR; used to specify the SR backend driver to use" }, 
      { "type": "(string -> string) map",
        "name": "sm_config",
        "doc": "Storage backend specific configuration options" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Perform a backend-specific scan, using the given device_config.  If the device_config is complete, then this will return a list of the SRs present of this type on the device, if any.  If the device_config is partial, then a backend-specific scan will be performed, returning results that will guide the user in improving the device_config." } ],
    "implicit": false }, 
  { "name": "scan",
    "description": "Refreshes the list of VDIs associated with an SR",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The SR to scan" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Refreshes the list of VDIs associated with an SR" } ],
    "implicit": false }, 
  { "name": "get_supported_types",
    "description": "Return a set of all the SR types supported by the system",
    "result": [ "string set", "the supported SR types" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Return a set of all the SR types supported by the system" } ],
    "implicit": false }, 
  { "name": "update",
    "description": "Refresh the fields on the SR object",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The SR whose fields should be refreshed" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "symc",
        "description": "Refresh the fields on the SR object" } ],
    "implicit": false }, 
  { "name": "forget",
    "description": "Removing specified SR-record from database, without attempting to remove SR from disk",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The SR to destroy" } ],
    "errors": [ 
      { "name": "SR_HAS_PBD",
        "doc": "The SR is still connected to a host via a PBD. It cannot be destroyed or forgotten." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Removing specified SR-record from database, without attempting to remove SR from disk" } ],
    "implicit": false }, 
  { "name": "destroy",
    "description": "Destroy specified SR, removing SR-record from database and remove SR from disk. (In order to affect this operation the appropriate device_config is read from the specified SR's PBD on current host)",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The SR to destroy" } ],
    "errors": [ 
      { "name": "SR_HAS_PBD",
        "doc": "The SR is still connected to a host via a PBD. It cannot be destroyed or forgotten." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Destroy specified SR, removing SR-record from database and remove SR from disk. (In order to affect this operation the appropriate device_config is read from the specified SR's PBD on current host)" } ],
    "implicit": false }, 
  { "name": "make",
    "description": "Create a new Storage Repository on disk. This call is deprecated: use SR.create instead.",
    "result": [ "string", "The uuid of the newly created Storage Repository." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host to create/make the SR on" }, 
      { "type": "(string -> string) map",
        "name": "device_config",
        "doc": "The device config string that will be passed to backend SR driver" }, 
      { "type": "int",
        "name": "physical_size",
        "doc": "The physical size of the new storage repository" }, 
      { "type": "string",
        "name": "name_label",
        "doc": "The name of the new storage repository" }, 
      { "type": "string",
        "name": "name_description",
        "doc": "The description of the new storage repository" }, 
      { "type": "string",
        "name": "type",
        "doc": "The type of the SR; used to specify the SR backend driver to use" }, 
      { "type": "string",
        "name": "content_type",
        "doc": "The type of the new SRs content, if required (e.g. ISOs)" }, 
      { "type": "(string -> string) map",
        "name": "sm_config",
        "doc": "Storage backend specific configuration options" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Create a new Storage Repository on disk" }, 
      { "transition": "deprecated",
        "release": "miami",
        "description": "Use SR.create instead" } ],
    "implicit": false }, 
  { "name": "introduce",
    "description": "Introduce a new Storage Repository into the managed system",
    "result": [ "SR ref", "The reference of the newly introduced Storage Repository." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "The uuid assigned to the introduced SR" }, 
      { "type": "string",
        "name": "name_label",
        "doc": "The name of the new storage repository" }, 
      { "type": "string",
        "name": "name_description",
        "doc": "The description of the new storage repository" }, 
      { "type": "string",
        "name": "type",
        "doc": "The type of the SR; used to specify the SR backend driver to use" }, 
      { "type": "string",
        "name": "content_type",
        "doc": "The type of the new SRs content, if required (e.g. ISOs)" }, 
      { "type": "bool",
        "name": "shared",
        "doc": "True if the SR (is capable of) being shared by multiple hosts" }, 
      { "type": "(string -> string) map",
        "name": "sm_config",
        "doc": "Storage backend specific configuration options" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Introduce a new Storage Repository into the managed system" } ],
    "implicit": false }, 
  { "name": "create",
    "description": "Create a new Storage Repository and introduce it into the managed system, creating both SR record and PBD record to attach it to current host (with specified device_config parameters)",
    "result": [ "SR ref", "The reference of the newly created Storage Repository." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host to create/make the SR on" }, 
      { "type": "(string -> string) map",
        "name": "device_config",
        "doc": "The device config string that will be passed to backend SR driver" }, 
      { "type": "int",
        "name": "physical_size",
        "doc": "The physical size of the new storage repository" }, 
      { "type": "string",
        "name": "name_label",
        "doc": "The name of the new storage repository" }, 
      { "type": "string",
        "name": "name_description",
        "doc": "The description of the new storage repository" }, 
      { "type": "string",
        "name": "type",
        "doc": "The type of the SR; used to specify the SR backend driver to use" }, 
      { "type": "string",
        "name": "content_type",
        "doc": "The type of the new SRs content, if required (e.g. ISOs)" }, 
      { "type": "bool",
        "name": "shared",
        "doc": "True if the SR (is capable of) being shared by multiple hosts" }, 
      { "type": "(string -> string) map",
        "name": "sm_config",
        "doc": "Storage backend specific configuration options" } ],
    "errors": [ 
      { "name": "SR_UNKNOWN_DRIVER",
        "doc": "The SR could not be connected because the driver was not recognised." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Create a new Storage Repository and introduce it into the managed system, creating both SR record and PBD record to attach it to current host (with specified device_config parameters)" } ],
    "implicit": false }, 
  { "name": "remove_from_sm_config",
    "description": "Remove the given key and its corresponding value from the sm_config field of the given SR.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "SM dependent data" } ],
    "implicit": true }, 
  { "name": "add_to_sm_config",
    "description": "Add the given key-value pair to the sm_config field of the given SR.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "SM dependent data" } ],
    "implicit": true }, 
  { "name": "set_sm_config",
    "description": "Set the sm_config field of the given SR.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "SM dependent data" } ],
    "implicit": true }, 
  { "name": "remove_tags",
    "description": "Remove the given value from the tags field of the given SR.  If the value is not in that Set, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "add_tags",
    "description": "Add the given value to the tags field of the given SR.  If the value is already in that Set, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "set_tags",
    "description": "Set the tags field of the given SR.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string set",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given SR.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given SR.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given SR.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_is_tools_sr",
    "description": "Get the is_tools_sr field of the given SR.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_clustered",
    "description": "Get the clustered field of the given SR.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_introduced_by",
    "description": "Get the introduced_by field of the given SR.",
    "result": [ "DR_task ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "The disaster recovery task which introduced this SR" } ],
    "implicit": true }, 
  { "name": "get_local_cache_enabled",
    "description": "Get the local_cache_enabled field of the given SR.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "True if this SR is assigned to be the local cache for its host" } ],
    "implicit": true }, 
  { "name": "get_blobs",
    "description": "Get the blobs field of the given SR.",
    "result": [ "(string -> blob ref) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Binary blobs associated with this SR" } ],
    "implicit": true }, 
  { "name": "get_sm_config",
    "description": "Get the sm_config field of the given SR.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "SM dependent data" } ],
    "implicit": true }, 
  { "name": "get_tags",
    "description": "Get the tags field of the given SR.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given SR.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_shared",
    "description": "Get the shared field of the given SR.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if this SR is (capable of being) shared between multiple hosts" } ],
    "implicit": true }, 
  { "name": "get_content_type",
    "description": "Get the content_type field of the given SR.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the type of the SR's content, if required (e.g. ISOs)" } ],
    "implicit": true }, 
  { "name": "get_type",
    "description": "Get the type field of the given SR.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "type of the storage repository" } ],
    "implicit": true }, 
  { "name": "get_physical_size",
    "description": "Get the physical_size field of the given SR.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "total physical size of the repository (in bytes)" } ],
    "implicit": true }, 
  { "name": "get_physical_utilisation",
    "description": "Get the physical_utilisation field of the given SR.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "physical space currently utilised on this storage repository (in bytes). Note that for sparse disk formats, physical_utilisation may be less than virtual_allocation" } ],
    "implicit": true }, 
  { "name": "get_virtual_allocation",
    "description": "Get the virtual_allocation field of the given SR.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "sum of virtual_sizes of all VDIs in this storage repository (in bytes)" } ],
    "implicit": true }, 
  { "name": "get_PBDs",
    "description": "Get the PBDs field of the given SR.",
    "result": [ "PBD ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "describes how particular hosts can see this storage repository" } ],
    "implicit": true }, 
  { "name": "get_VDIs",
    "description": "Get the VDIs field of the given SR.",
    "result": [ "VDI ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "all virtual disks known to this storage repository" } ],
    "implicit": true }, 
  { "name": "get_current_operations",
    "description": "Get the current_operations field of the given SR.",
    "result": [ "(string -> enum storage_operations) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "implicit": true }, 
  { "name": "get_allowed_operations",
    "description": "Get the allowed_operations field of the given SR.",
    "result": [ "enum storage_operations set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given SR.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given SR.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given SR.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the SR instances with the given label.",
    "result": [ "SR ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A storage repository" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the SR instance with the specified UUID.",
    "result": [ "SR ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A storage repository" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given SR.",
    "result": [ "SR record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SR ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A storage repository" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "storage_operations",
    "values": [ 
      { "name": "scan",
        "doc": "Scanning backends for new or deleted VDIs" }, 
      { "name": "destroy",
        "doc": "Destroying the SR" }, 
      { "name": "forget",
        "doc": "Forgetting about SR" }, 
      { "name": "plug",
        "doc": "Plugging a PBD into this SR" }, 
      { "name": "unplug",
        "doc": "Unplugging a PBD from this SR" }, 
      { "name": "update",
        "doc": "Refresh the fields on the SR" }, 
      { "name": "vdi_create",
        "doc": "Creating a new VDI" }, 
      { "name": "vdi_introduce",
        "doc": "Introducing a new VDI" }, 
      { "name": "vdi_destroy",
        "doc": "Destroying a VDI" }, 
      { "name": "vdi_resize",
        "doc": "Resizing a VDI" }, 
      { "name": "vdi_clone",
        "doc": "Cloneing a VDI" }, 
      { "name": "vdi_snapshot",
        "doc": "Snapshotting a VDI" }, 
      { "name": "vdi_mirror",
        "doc": "Mirroring a VDI" }, 
      { "name": "vdi_enable_cbt",
        "doc": "Enabling changed block tracking for a VDI" }, 
      { "name": "vdi_disable_cbt",
        "doc": "Disabling changed block tracking for a VDI" }, 
      { "name": "vdi_data_destroy",
        "doc": "Deleting the data of the VDI" }, 
      { "name": "vdi_list_changed_blocks",
        "doc": "Exporting a bitmap that shows the changed blocks between two VDIs" }, 
      { "name": "vdi_set_on_boot",
        "doc": "Setting the on_boot field of the VDI" }, 
      { "name": "pbd_create",
        "doc": "Creating a PBD for this SR" }, 
      { "name": "pbd_destroy",
        "doc": "Destroying one of this SR's PBDs" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "A storage repository" } ],
"tag": "" }, { "name": "sr_stat",
"description": "A set of high-level properties associated with an SR.",
"fields": [ 
  { "name": "uuid",
    "description": "Uuid that uniquely identifies this SR, if one is available.",
    "type": "string option",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ] }, 
  { "name": "name_label",
    "description": "Short, human-readable label for the SR.",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ] }, 
  { "name": "name_description",
    "description": "Longer, human-readable description of the SR. Descriptions are generally only displayed by clients when the user is examining SRs in detail.",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ] }, 
  { "name": "free_space",
    "description": "Number of bytes free on the backing storage (in bytes)",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ] }, 
  { "name": "total_space",
    "description": "Total physical size of the backing storage (in bytes)",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ] }, 
  { "name": "clustered",
    "description": "Indicates whether the SR uses clustered local storage.",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ] }, 
  { "name": "health",
    "description": "The health status of the SR.",
    "type": "enum sr_health",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ] } ],
"messages": [  ],
"enums": [ 
  { "name": "sr_health",
    "values": [ 
      { "name": "healthy",
        "doc": "Storage is fully available" }, 
      { "name": "recovering",
        "doc": "Storage is busy recovering, e.g. rebuilding mirrors." } ] } ],
"lifecycle": [ 
  { "transition": "prototyped",
    "release": "kolkata",
    "description": "" } ],
"tag": "" }, { "name": "probe_result",
"description": "A set of properties that describe one result element of SR.probe. Result elements and properties can change dynamically based on changes to the the SR.probe input-parameters or the target.",
"fields": [ 
  { "name": "configuration",
    "description": "Plugin-specific configuration which describes where and how to locate the storage repository. This may include the physical block device name, a remote NFS server and path or an RBD storage pool.",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ] }, 
  { "name": "complete",
    "description": "True if this configuration is complete and can be used to call SR.create. False if it requires further iterative calls to SR.probe, to potentially narrow down on a configuration that can be used.",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ] }, 
  { "name": "sr",
    "description": "Existing SR found for this configuration",
    "type": "sr_stat record option",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ] }, 
  { "name": "extra_info",
    "description": "Additional plugin-specific information about this configuration, that might be of use for an API user. This can for example include the LUN or the WWPN.",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ] } ],
"messages": [  ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "prototyped",
    "release": "kolkata",
    "description": "" } ],
"tag": "" }, { "name": "LVHD",
"description": "LVHD SR specific operations",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] } ],
"messages": [ 
  { "name": "enable_thin_provisioning",
    "description": "Upgrades an LVHD SR to enable thin-provisioning. Future VDIs created in this SR will be thinly-provisioned, although existing VDIs will be left alone. Note that the SR must be attached to the SRmaster for upgrade to work.",
    "result": [ "string", "Message from LVHD.enable_thin_provisioning extension" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The LVHD Host to upgrade to being thin-provisioned." }, 
      { "type": "SR ref",
        "name": "SR",
        "doc": "The LVHD SR to upgrade to being thin-provisioned." }, 
      { "type": "int",
        "name": "initial_allocation",
        "doc": "The initial amount of space to allocate to a newly-created VDI in bytes" }, 
      { "type": "int",
        "name": "allocation_quantum",
        "doc": "The amount of space to allocate to a VDI when it needs to be enlarged in bytes" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "Upgrades an LVHD SR to enable thin-provisioning. Future VDIs created in this SR will be thinly-provisioned, although existing VDIs will be left alone. Note that the SR must be attached to the SRmaster for upgrade to work." } ],
    "implicit": false }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given LVHD.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "LVHD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the LVHD instance with the specified UUID.",
    "result": [ "LVHD ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "LVHD SR specific operations" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given LVHD.",
    "result": [ "LVHD record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "LVHD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "LVHD SR specific operations" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "dundee",
    "description": "LVHD SR specific operations" } ],
"tag": "" }, { "name": "VDI",
"description": "A virtual disk image",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "default": "\"\"" }, 
  { "name": "allowed_operations",
    "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client.",
    "type": "enum vdi_operations set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "default": "{}" }, 
  { "name": "current_operations",
    "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task.",
    "type": "(string -> enum vdi_operations) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "default": "{}" }, 
  { "name": "SR",
    "description": "storage repository in which the VDI resides",
    "type": "SR ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "storage repository in which the VDI resides" } ] }, 
  { "name": "VBDs",
    "description": "list of vbds that refer to this disk",
    "type": "VBD ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of vbds that refer to this disk" } ] }, 
  { "name": "crash_dumps",
    "description": "list of crash dumps that refer to this disk",
    "type": "crashdump ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of crash dumps that refer to this disk" } ] }, 
  { "name": "virtual_size",
    "description": "size of disk as presented to the guest (in bytes). Note that, depending on storage backend type, requested size may not be respected exactly",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "size of disk as presented to the guest (in bytes). Note that, depending on storage backend type, requested size may not be respected exactly" } ] }, 
  { "name": "physical_utilisation",
    "description": "amount of physical space that the disk image is currently taking up on the storage repository (in bytes)",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "amount of physical space that the disk image is currently taking up on the storage repository (in bytes)" } ] }, 
  { "name": "type",
    "description": "type of the VDI",
    "type": "enum vdi_type",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "type of the VDI" } ] }, 
  { "name": "sharable",
    "description": "true if this disk may be shared",
    "type": "bool",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if this disk may be shared" } ] }, 
  { "name": "read_only",
    "description": "true if this disk may ONLY be mounted read-only",
    "type": "bool",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if this disk may ONLY be mounted read-only" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ] }, 
  { "name": "storage_lock",
    "description": "true if this disk is locked at the storage level",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if this disk is locked at the storage level" } ] }, 
  { "name": "location",
    "description": "location information",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "location information" } ],
    "default": "\"\"" }, 
  { "name": "managed",
    "description": "",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "" } ] }, 
  { "name": "missing",
    "description": "true if SR scan operation reported this VDI as not present on disk",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if SR scan operation reported this VDI as not present on disk" } ] }, 
  { "name": "parent",
    "description": "This field is always null. Deprecated",
    "type": "VDI ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "The field was never used." } ] }, 
  { "name": "xenstore_data",
    "description": "data to be inserted into the xenstore tree (/local/domain/0/backend/vbd/<domid>/<device-id>/sm-data) after the VDI is attached. This is generally set by the SM backends on vdi_attach.",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "data to be inserted into the xenstore tree (/local/domain/0/backend/vbd/<domid>/<device-id>/sm-data) after the VDI is attached. This is generally set by the SM backends on vdi_attach." } ],
    "default": "{}" }, 
  { "name": "sm_config",
    "description": "SM dependent data",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "SM dependent data" } ],
    "default": "{}" }, 
  { "name": "is_a_snapshot",
    "description": "true if this is a snapshot.",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "snapshots",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "true if this is a snapshot." } ],
    "default": "false" }, 
  { "name": "snapshot_of",
    "description": "Ref pointing to the VDI this snapshot is of.",
    "type": "VDI ref",
    "qualifier": "RO/runtime",
    "tag": "snapshots",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Ref pointing to the VDI this snapshot is of." } ],
    "default": "Null" }, 
  { "name": "snapshots",
    "description": "List pointing to all the VDIs snapshots.",
    "type": "VDI ref set",
    "qualifier": "RO/runtime",
    "tag": "snapshots",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "List pointing to all the VDIs snapshots." } ] }, 
  { "name": "snapshot_time",
    "description": "Date/time when this snapshot was created.",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "snapshots",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Date/time when this snapshot was created." } ],
    "default": "19700101T00:00:00Z" }, 
  { "name": "tags",
    "description": "user-specified tags for categorization purposes",
    "type": "string set",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "default": "{}" }, 
  { "name": "allow_caching",
    "description": "true if this VDI is to be cached in the local cache SR",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "true if this VDI is to be cached in the local cache SR" } ],
    "default": "false" }, 
  { "name": "on_boot",
    "description": "The behaviour of this VDI on a VM boot",
    "type": "enum on_boot",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "The behaviour of this VDI on a VM boot" } ],
    "default": "persist" }, 
  { "name": "metadata_of_pool",
    "description": "The pool whose metadata is contained in this VDI",
    "type": "pool ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "The pool whose metadata is contained in this VDI" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "metadata_latest",
    "description": "Whether this VDI contains the latest known accessible metadata for the pool",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Whether this VDI contains the latest known accessible metadata for the pool" } ],
    "default": "false" }, 
  { "name": "is_tools_iso",
    "description": "Whether this VDI is a Tools ISO",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "default": "false" }, 
  { "name": "cbt_enabled",
    "description": "True if changed blocks are tracked for this VDI",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "snapshots",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "false" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of VDI references to VDI records for all VDIs known to the system.",
    "result": [ "(VDI ref -> VDI record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual disk image" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the VDIs known to the system.",
    "result": [ "VDI ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual disk image" } ],
    "implicit": true }, 
  { "name": "get_nbd_info",
    "description": "Get details specifying how to access this VDI via a Network Block Device server. For each of a set of NBD server addresses on which the VDI is available, the return value set contains a vdi_nbd_server_info object that contains an exportname to request once the NBD connection is established, and connection details for the address. An empty list is returned if there is no network that has a PIF on a host with access to the relevant SR, or if no such network has been assigned an NBD-related purpose in its purpose field. To access the given VDI, any of the vdi_nbd_server_info objects can be used to make a connection to a server, and then the VDI will be available by requesting the exportname.",
    "result": [ "vdi_nbd_server_info record set", "The details necessary for connecting to the VDI over NBD. This includes an authentication token, so must be treated as sensitive material and must not be sent over insecure networks." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "The VDI to access via Network Block Device protocol" } ],
    "errors": [ 
      { "name": "VDI_INCOMPATIBLE_TYPE",
        "doc": "This operation cannot be performed because the specified VDI is of an incompatible type (eg: an HA statefile cannot be attached to a guest)" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "Get details specifying how to access this VDI via a Network Block Device server. For each of a set of NBD server addresses on which the VDI is available, the return value set contains a vdi_nbd_server_info object that contains an exportname to request once the NBD connection is established, and connection details for the address. An empty list is returned if there is no network that has a PIF on a host with access to the relevant SR, or if no such network has been assigned an NBD-related purpose in its purpose field. To access the given VDI, any of the vdi_nbd_server_info objects can be used to make a connection to a server, and then the VDI will be available by requesting the exportname." } ],
    "implicit": false }, 
  { "name": "list_changed_blocks",
    "description": "Compare two VDIs in 64k block increments and report which blocks differ. This operation is not allowed when vdi_to is attached to a VM.",
    "result": [ "string", "A base64 string-encoding of the bitmap showing which blocks differ in the two VDIs." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "vdi_from",
        "doc": "The first VDI." }, 
      { "type": "VDI ref",
        "name": "vdi_to",
        "doc": "The second VDI." } ],
    "errors": [ 
      { "name": "SR_OPERATION_NOT_SUPPORTED",
        "doc": "The SR backend does not support the operation (check the SR's allowed operations)" }, 
      { "name": "VDI_MISSING",
        "doc": "This operation cannot be performed because the specified VDI could not be found on the storage substrate" }, 
      { "name": "SR_NOT_ATTACHED",
        "doc": "The SR is not attached." }, 
      { "name": "SR_HAS_NO_PBDS",
        "doc": "The SR has no attached PBDs" }, 
      { "name": "VDI_IN_USE",
        "doc": "This operation cannot be performed because this VDI is in use by some other operation" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "Compare two VDIs in 64k block increments and report which blocks differ. This operation is not allowed when vdi_to is attached to a VM." } ],
    "implicit": false }, 
  { "name": "data_destroy",
    "description": "Delete the data of the snapshot VDI, but keep its changed block tracking metadata. When successful, this call changes the type of the VDI to cbt_metadata. This operation is idempotent: calling it on a VDI of type cbt_metadata results in a no-op, and no error will be thrown.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "The VDI whose data should be deleted." } ],
    "errors": [ 
      { "name": "SR_OPERATION_NOT_SUPPORTED",
        "doc": "The SR backend does not support the operation (check the SR's allowed operations)" }, 
      { "name": "VDI_MISSING",
        "doc": "This operation cannot be performed because the specified VDI could not be found on the storage substrate" }, 
      { "name": "SR_NOT_ATTACHED",
        "doc": "The SR is not attached." }, 
      { "name": "SR_HAS_NO_PBDS",
        "doc": "The SR has no attached PBDs" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "VDI_INCOMPATIBLE_TYPE",
        "doc": "This operation cannot be performed because the specified VDI is of an incompatible type (eg: an HA statefile cannot be attached to a guest)" }, 
      { "name": "VDI_NO_CBT_METADATA",
        "doc": "The requested operation is not allowed because the specified VDI does not have changed block tracking metadata." }, 
      { "name": "VDI_IN_USE",
        "doc": "This operation cannot be performed because this VDI is in use by some other operation" }, 
      { "name": "VDI_IS_A_PHYSICAL_DEVICE",
        "doc": "The operation cannot be performed on physical device" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "Delete the data of the snapshot VDI, but keep its changed block tracking metadata. When successful, this call changes the type of the VDI to cbt_metadata. This operation is idempotent: calling it on a VDI of type cbt_metadata results in a no-op, and no error will be thrown." } ],
    "implicit": false }, 
  { "name": "disable_cbt",
    "description": "Disable changed block tracking for the VDI. This call is only allowed on VDIs that support enabling CBT. It is an idempotent operation - disabling CBT for a VDI for which CBT is not enabled results in a no-op, and no error will be thrown.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "The VDI for which CBT should be disabled" } ],
    "errors": [ 
      { "name": "SR_OPERATION_NOT_SUPPORTED",
        "doc": "The SR backend does not support the operation (check the SR's allowed operations)" }, 
      { "name": "VDI_MISSING",
        "doc": "This operation cannot be performed because the specified VDI could not be found on the storage substrate" }, 
      { "name": "SR_NOT_ATTACHED",
        "doc": "The SR is not attached." }, 
      { "name": "SR_HAS_NO_PBDS",
        "doc": "The SR has no attached PBDs" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "VDI_INCOMPATIBLE_TYPE",
        "doc": "This operation cannot be performed because the specified VDI is of an incompatible type (eg: an HA statefile cannot be attached to a guest)" }, 
      { "name": "VDI_ON_BOOT_MODE_INCOMPATIBLE_WITH_OPERATION",
        "doc": "This operation is not permitted on VDIs in the 'on-boot=reset' mode, or on VMs having such VDIs." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "Disable changed block tracking for the VDI. This call is only allowed on VDIs that support enabling CBT. It is an idempotent operation - disabling CBT for a VDI for which CBT is not enabled results in a no-op, and no error will be thrown." } ],
    "implicit": false }, 
  { "name": "enable_cbt",
    "description": "Enable changed block tracking for the VDI. This call is idempotent - enabling CBT for a VDI for which CBT is already enabled results in a no-op, and no error will be thrown.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "The VDI for which CBT should be enabled" } ],
    "errors": [ 
      { "name": "SR_OPERATION_NOT_SUPPORTED",
        "doc": "The SR backend does not support the operation (check the SR's allowed operations)" }, 
      { "name": "VDI_MISSING",
        "doc": "This operation cannot be performed because the specified VDI could not be found on the storage substrate" }, 
      { "name": "SR_NOT_ATTACHED",
        "doc": "The SR is not attached." }, 
      { "name": "SR_HAS_NO_PBDS",
        "doc": "The SR has no attached PBDs" }, 
      { "name": "OPERATION_NOT_ALLOWED",
        "doc": "You attempted an operation that was not allowed." }, 
      { "name": "VDI_INCOMPATIBLE_TYPE",
        "doc": "This operation cannot be performed because the specified VDI is of an incompatible type (eg: an HA statefile cannot be attached to a guest)" }, 
      { "name": "VDI_ON_BOOT_MODE_INCOMPATIBLE_WITH_OPERATION",
        "doc": "This operation is not permitted on VDIs in the 'on-boot=reset' mode, or on VMs having such VDIs." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "Enable changed block tracking for the VDI. This call is idempotent - enabling CBT for a VDI for which CBT is already enabled results in a no-op, and no error will be thrown." } ],
    "implicit": false }, 
  { "name": "pool_migrate",
    "description": "Migrate a VDI, which may be attached to a running guest, to a different SR. The destination SR must be visible to the guest.",
    "result": [ "VDI ref", "The new reference of the migrated VDI." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "vdi",
        "doc": "The VDI to migrate" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The destination SR" }, 
      { "type": "(string -> string) map",
        "name": "options",
        "doc": "Other parameters" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "Migrate a VDI, which may be attached to a running guest, to a different SR. The destination SR must be visible to the guest." } ],
    "implicit": false }, 
  { "name": "read_database_pool_uuid",
    "description": "Check the VDI cache for the pool UUID of the database on this VDI.",
    "result": [ "string", "The cached pool UUID of the database on the VDI." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "The metadata VDI to look up in the cache." } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Check the VDI cache for the pool UUID of the database on this VDI." } ],
    "implicit": false }, 
  { "name": "open_database",
    "description": "Load the metadata found on the supplied VDI and return a session reference which can be used in API calls to query its contents.",
    "result": [ "session ref", "A session which can be used to query the database" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "The VDI which contains the database to open" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Load the metadata found on the supplied VDI and return a session reference which can be used in API calls to query its contents." } ],
    "implicit": false }, 
  { "name": "set_allow_caching",
    "description": "Set the value of the allow_caching parameter. This value can only be changed when the VDI is not attached to a running VM. The caching behaviour is only affected by this flag for VHD-based VDIs that have one parent and no child VHDs. Moreover, caching only takes place when the host running the VM containing this VDI has a nominated SR for local caching.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "The VDI to modify" }, 
      { "type": "bool",
        "name": "value",
        "doc": "The value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Set the value of the allow_caching parameter. This value can only be changed when the VDI is not attached to a running VM. The caching behaviour is only affected by this flag for VHD-based VDIs that have one parent and no child VHDs. Moreover, caching only takes place when the host running the VM containing this VDI has a nominated SR for local caching." } ],
    "implicit": false }, 
  { "name": "set_on_boot",
    "description": "Set the value of the on_boot parameter. This value can only be changed when the VDI is not attached to a running VM.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "The VDI to modify" }, 
      { "type": "enum on_boot",
        "name": "value",
        "doc": "The value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Set the value of the on_boot parameter. This value can only be changed when the VDI is not attached to a running VM." } ],
    "implicit": false }, 
  { "name": "set_name_description",
    "description": "Set the name description of the VDI. This can only happen when its SR is currently attached.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "The VDI to modify" }, 
      { "type": "string",
        "name": "value",
        "doc": "The name description for the VDI" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Set the name description of the VDI. This can only happen when its SR is currently attached." } ],
    "implicit": false }, 
  { "name": "set_name_label",
    "description": "Set the name label of the VDI. This can only happen when then its SR is currently attached.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "The VDI to modify" }, 
      { "type": "string",
        "name": "value",
        "doc": "The name lable for the VDI" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Set the name label of the VDI. This can only happen when then its SR is currently attached." } ],
    "implicit": false }, 
  { "name": "set_read_only",
    "description": "Sets the VDI's read_only field",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "The VDI to modify" }, 
      { "type": "bool",
        "name": "value",
        "doc": "The new value of the VDI's read_only field" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Sets the VDI's read_only field" } ],
    "implicit": false }, 
  { "name": "set_sharable",
    "description": "Sets the VDI's sharable field",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "The VDI to modify" }, 
      { "type": "bool",
        "name": "value",
        "doc": "The new value of the VDI's sharable field" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "george",
        "description": "Sets the VDI's sharable field" } ],
    "implicit": false }, 
  { "name": "forget",
    "description": "Removes a VDI record from the database",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "vdi",
        "doc": "The VDI to forget about" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Removes a VDI record from the database" } ],
    "implicit": false }, 
  { "name": "copy",
    "description": "Copy either a full VDI or the block differences between two VDIs into either a fresh VDI or an existing VDI.",
    "result": [ "VDI ref", "The reference of the VDI where the blocks were written." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "vdi",
        "doc": "The VDI to copy" }, 
      { "type": "SR ref",
        "name": "sr",
        "doc": "The destination SR (only required if the destination VDI is not specified" }, 
      { "type": "VDI ref",
        "name": "base_vdi",
        "doc": "The base VDI (only required if copying only changed blocks, by default all blocks will be copied)" }, 
      { "type": "VDI ref",
        "name": "into_vdi",
        "doc": "The destination VDI to copy blocks into (if omitted then a destination SR must be provided and a fresh VDI will be created)" } ],
    "errors": [ 
      { "name": "VDI_READONLY",
        "doc": "The operation required write access but this VDI is read-only" }, 
      { "name": "VDI_TOO_SMALL",
        "doc": "The VDI is too small. Please resize it to at least the minimum size." }, 
      { "name": "VDI_NOT_SPARSE",
        "doc": "The VDI is not stored using a sparse format. It is not possible to query and manipulate only the changed blocks (or 'block differences' or 'disk deltas') between two VDIs. Please select a VDI which uses a sparse-aware technology such as VHD." } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Copies a VDI to an SR. There must be a host that can see both the source and destination SRs simultaneously" }, 
      { "transition": "extended",
        "release": "cowley",
        "description": "The copy can now be performed between any two SRs." }, 
      { "transition": "extended",
        "release": "clearwater-felton",
        "description": "The copy can now be performed into a pre-created VDI. It is now possible to request copying only changed blocks from a base VDI" } ],
    "implicit": false }, 
  { "name": "update",
    "description": "Ask the storage backend to refresh the fields in the VDI object",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "vdi",
        "doc": "The VDI whose stats (eg size) should be updated" } ],
    "errors": [ 
      { "name": "SR_OPERATION_NOT_SUPPORTED",
        "doc": "The SR backend does not support the operation (check the SR's allowed operations)" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "symc",
        "description": "Ask the storage backend to refresh the fields in the VDI object" } ],
    "implicit": false }, 
  { "name": "introduce",
    "description": "Create a new VDI record in the database only",
    "result": [ "VDI ref", "The ref of the newly created VDI record." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "The uuid of the disk to introduce" }, 
      { "type": "string",
        "name": "name_label",
        "doc": "The name of the disk record" }, 
      { "type": "string",
        "name": "name_description",
        "doc": "The description of the disk record" }, 
      { "type": "SR ref",
        "name": "SR",
        "doc": "The SR that the VDI is in" }, 
      { "type": "enum vdi_type",
        "name": "type",
        "doc": "The type of the VDI" }, 
      { "type": "bool",
        "name": "sharable",
        "doc": "true if this disk may be shared" }, 
      { "type": "bool",
        "name": "read_only",
        "doc": "true if this disk may ONLY be mounted read-only" }, 
      { "type": "(string -> string) map",
        "name": "other_config",
        "doc": "additional configuration" }, 
      { "type": "string",
        "name": "location",
        "doc": "location information" }, 
      { "type": "(string -> string) map",
        "name": "xenstore_data",
        "doc": "Data to insert into xenstore" }, 
      { "type": "(string -> string) map",
        "name": "sm_config",
        "doc": "Storage-specific config" }, 
      { "type": "bool",
        "name": "managed",
        "doc": "Storage-specific config" }, 
      { "type": "int",
        "name": "virtual_size",
        "doc": "Storage-specific config" }, 
      { "type": "int",
        "name": "physical_utilisation",
        "doc": "Storage-specific config" }, 
      { "type": "pool ref",
        "name": "metadata_of_pool",
        "doc": "Storage-specific config" }, 
      { "type": "bool",
        "name": "is_a_snapshot",
        "doc": "Storage-specific config" }, 
      { "type": "datetime",
        "name": "snapshot_time",
        "doc": "Storage-specific config" }, 
      { "type": "VDI ref",
        "name": "snapshot_of",
        "doc": "Storage-specific config" } ],
    "errors": [ 
      { "name": "SR_OPERATION_NOT_SUPPORTED",
        "doc": "The SR backend does not support the operation (check the SR's allowed operations)" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Create a new VDI record in the database only" } ],
    "implicit": false }, 
  { "name": "resize_online",
    "description": "Resize the VDI which may or may not be attached to running guests.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "vdi",
        "doc": "The VDI to resize" }, 
      { "type": "int",
        "name": "size",
        "doc": "The new size of the VDI" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "" }, 
      { "transition": "removed",
        "release": "inverness",
        "description": "Online VDI resize is not supported by any of the storage backends." } ],
    "implicit": false }, 
  { "name": "resize",
    "description": "Resize the VDI.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "vdi",
        "doc": "The VDI to resize" }, 
      { "type": "int",
        "name": "size",
        "doc": "The new size of the VDI" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Resize the VDI." } ],
    "implicit": false }, 
  { "name": "clone",
    "description": "Take an exact copy of the VDI and return a reference to the new disk. If any driver_params are specified then these are passed through to the storage-specific substrate driver that implements the clone operation. NB the clone lives in the same Storage Repository as its parent.",
    "result": [ "VDI ref", "The ID of the newly created VDI." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "vdi",
        "doc": "The VDI to clone" }, 
      { "type": "(string -> string) map",
        "name": "driver_params",
        "doc": "Optional parameters that are passed through to the backend driver in order to specify storage-type-specific clone options" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "snapshots",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Take an exact copy of the VDI and return a reference to the new disk. If any driver_params are specified then these are passed through to the storage-specific substrate driver that implements the clone operation. NB the clone lives in the same Storage Repository as its parent." } ],
    "implicit": false }, 
  { "name": "snapshot",
    "description": "Take a read-only snapshot of the VDI, returning a reference to the snapshot. If any driver_params are specified then these are passed through to the storage-specific substrate driver that takes the snapshot. NB the snapshot lives in the same Storage Repository as its parent.",
    "result": [ "VDI ref", "The ID of the newly created VDI." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "vdi",
        "doc": "The VDI to snapshot" }, 
      { "type": "(string -> string) map",
        "name": "driver_params",
        "doc": "Optional parameters that can be passed through to backend driver in order to specify storage-type-specific snapshot options" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "snapshots",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Take a read-only snapshot of the VDI, returning a reference to the snapshot. If any driver_params are specified then these are passed through to the storage-specific substrate driver that takes the snapshot. NB the snapshot lives in the same Storage Repository as its parent." } ],
    "implicit": false }, 
  { "name": "remove_tags",
    "description": "Remove the given value from the tags field of the given VDI.  If the value is not in that Set, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "add_tags",
    "description": "Add the given value to the tags field of the given VDI.  If the value is already in that Set, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "set_tags",
    "description": "Set the tags field of the given VDI.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string set",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "remove_from_sm_config",
    "description": "Remove the given key and its corresponding value from the sm_config field of the given VDI.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "SM dependent data" } ],
    "implicit": true }, 
  { "name": "add_to_sm_config",
    "description": "Add the given key-value pair to the sm_config field of the given VDI.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "SM dependent data" } ],
    "implicit": true }, 
  { "name": "set_sm_config",
    "description": "Set the sm_config field of the given VDI.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "SM dependent data" } ],
    "implicit": true }, 
  { "name": "remove_from_xenstore_data",
    "description": "Remove the given key and its corresponding value from the xenstore_data field of the given VDI.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "data to be inserted into the xenstore tree (/local/domain/0/backend/vbd/<domid>/<device-id>/sm-data) after the VDI is attached. This is generally set by the SM backends on vdi_attach." } ],
    "implicit": true }, 
  { "name": "add_to_xenstore_data",
    "description": "Add the given key-value pair to the xenstore_data field of the given VDI.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "data to be inserted into the xenstore tree (/local/domain/0/backend/vbd/<domid>/<device-id>/sm-data) after the VDI is attached. This is generally set by the SM backends on vdi_attach." } ],
    "implicit": true }, 
  { "name": "set_xenstore_data",
    "description": "Set the xenstore_data field of the given VDI.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "data to be inserted into the xenstore tree (/local/domain/0/backend/vbd/<domid>/<device-id>/sm-data) after the VDI is attached. This is generally set by the SM backends on vdi_attach." } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given VDI.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given VDI.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given VDI.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_cbt_enabled",
    "description": "Get the cbt_enabled field of the given VDI.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_is_tools_iso",
    "description": "Get the is_tools_iso field of the given VDI.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_metadata_latest",
    "description": "Get the metadata_latest field of the given VDI.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Whether this VDI contains the latest known accessible metadata for the pool" } ],
    "implicit": true }, 
  { "name": "get_metadata_of_pool",
    "description": "Get the metadata_of_pool field of the given VDI.",
    "result": [ "pool ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "The pool whose metadata is contained in this VDI" } ],
    "implicit": true }, 
  { "name": "get_on_boot",
    "description": "Get the on_boot field of the given VDI.",
    "result": [ "enum on_boot", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "The behaviour of this VDI on a VM boot" } ],
    "implicit": true }, 
  { "name": "get_allow_caching",
    "description": "Get the allow_caching field of the given VDI.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "true if this VDI is to be cached in the local cache SR" } ],
    "implicit": true }, 
  { "name": "get_tags",
    "description": "Get the tags field of the given VDI.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "user-specified tags for categorization purposes" } ],
    "implicit": true }, 
  { "name": "get_snapshot_time",
    "description": "Get the snapshot_time field of the given VDI.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Date/time when this snapshot was created." } ],
    "implicit": true }, 
  { "name": "get_snapshots",
    "description": "Get the snapshots field of the given VDI.",
    "result": [ "VDI ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "List pointing to all the VDIs snapshots." } ],
    "implicit": true }, 
  { "name": "get_snapshot_of",
    "description": "Get the snapshot_of field of the given VDI.",
    "result": [ "VDI ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Ref pointing to the VDI this snapshot is of." } ],
    "implicit": true }, 
  { "name": "get_is_a_snapshot",
    "description": "Get the is_a_snapshot field of the given VDI.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "true if this is a snapshot." } ],
    "implicit": true }, 
  { "name": "get_sm_config",
    "description": "Get the sm_config field of the given VDI.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "SM dependent data" } ],
    "implicit": true }, 
  { "name": "get_xenstore_data",
    "description": "Get the xenstore_data field of the given VDI.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "data to be inserted into the xenstore tree (/local/domain/0/backend/vbd/<domid>/<device-id>/sm-data) after the VDI is attached. This is generally set by the SM backends on vdi_attach." } ],
    "implicit": true }, 
  { "name": "get_parent",
    "description": "Get the parent field of the given VDI.",
    "result": [ "VDI ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "" }, 
      { "transition": "deprecated",
        "release": "ely",
        "description": "The field was never used." } ],
    "implicit": true }, 
  { "name": "get_missing",
    "description": "Get the missing field of the given VDI.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if SR scan operation reported this VDI as not present on disk" } ],
    "implicit": true }, 
  { "name": "get_managed",
    "description": "Get the managed field of the given VDI.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_location",
    "description": "Get the location field of the given VDI.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "location information" } ],
    "implicit": true }, 
  { "name": "get_storage_lock",
    "description": "Get the storage_lock field of the given VDI.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if this disk is locked at the storage level" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given VDI.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_read_only",
    "description": "Get the read_only field of the given VDI.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if this disk may ONLY be mounted read-only" } ],
    "implicit": true }, 
  { "name": "get_sharable",
    "description": "Get the sharable field of the given VDI.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if this disk may be shared" } ],
    "implicit": true }, 
  { "name": "get_type",
    "description": "Get the type field of the given VDI.",
    "result": [ "enum vdi_type", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "type of the VDI" } ],
    "implicit": true }, 
  { "name": "get_physical_utilisation",
    "description": "Get the physical_utilisation field of the given VDI.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "amount of physical space that the disk image is currently taking up on the storage repository (in bytes)" } ],
    "implicit": true }, 
  { "name": "get_virtual_size",
    "description": "Get the virtual_size field of the given VDI.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "size of disk as presented to the guest (in bytes). Note that, depending on storage backend type, requested size may not be respected exactly" } ],
    "implicit": true }, 
  { "name": "get_crash_dumps",
    "description": "Get the crash_dumps field of the given VDI.",
    "result": [ "crashdump ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of crash dumps that refer to this disk" } ],
    "implicit": true }, 
  { "name": "get_VBDs",
    "description": "Get the VBDs field of the given VDI.",
    "result": [ "VBD ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of vbds that refer to this disk" } ],
    "implicit": true }, 
  { "name": "get_SR",
    "description": "Get the SR field of the given VDI.",
    "result": [ "SR ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "storage repository in which the VDI resides" } ],
    "implicit": true }, 
  { "name": "get_current_operations",
    "description": "Get the current_operations field of the given VDI.",
    "result": [ "(string -> enum vdi_operations) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "implicit": true }, 
  { "name": "get_allowed_operations",
    "description": "Get the allowed_operations field of the given VDI.",
    "result": [ "enum vdi_operations set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given VDI.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given VDI.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given VDI.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the VDI instances with the given label.",
    "result": [ "VDI ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual disk image" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy the specified VDI instance.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual disk image" } ],
    "implicit": true }, 
  { "name": "create",
    "description": "Create a new VDI instance, and return its handle.\nThe constructor args are: name_label, name_description, SR*, virtual_size*, type*, sharable*, read_only*, other_config*, xenstore_data, sm_config, tags (* = non-optional).",
    "result": [ "VDI ref", "reference to the newly created object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI record",
        "name": "args",
        "doc": "All constructor arguments" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual disk image" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the VDI instance with the specified UUID.",
    "result": [ "VDI ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual disk image" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given VDI.",
    "result": [ "VDI record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VDI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual disk image" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "vdi_operations",
    "values": [ 
      { "name": "clone",
        "doc": "Cloning the VDI" }, 
      { "name": "copy",
        "doc": "Copying the VDI" }, 
      { "name": "resize",
        "doc": "Resizing the VDI" }, 
      { "name": "resize_online",
        "doc": "Resizing the VDI which may or may not be online" }, 
      { "name": "snapshot",
        "doc": "Snapshotting the VDI" }, 
      { "name": "mirror",
        "doc": "Mirroring the VDI" }, 
      { "name": "destroy",
        "doc": "Destroying the VDI" }, 
      { "name": "forget",
        "doc": "Forget about the VDI" }, 
      { "name": "update",
        "doc": "Refreshing the fields of the VDI" }, 
      { "name": "force_unlock",
        "doc": "Forcibly unlocking the VDI" }, 
      { "name": "generate_config",
        "doc": "Generating static configuration" }, 
      { "name": "enable_cbt",
        "doc": "Enabling changed block tracking for a VDI" }, 
      { "name": "disable_cbt",
        "doc": "Disabling changed block tracking for a VDI" }, 
      { "name": "data_destroy",
        "doc": "Deleting the data of the VDI" }, 
      { "name": "list_changed_blocks",
        "doc": "Exporting a bitmap that shows the changed blocks between two VDIs" }, 
      { "name": "set_on_boot",
        "doc": "Setting the on_boot field of the VDI" }, 
      { "name": "blocked",
        "doc": "Operations on this VDI are temporarily blocked" } ] }, 
  { "name": "vdi_type",
    "values": [ 
      { "name": "system",
        "doc": "a disk that may be replaced on upgrade" }, 
      { "name": "user",
        "doc": "a disk that is always preserved on upgrade" }, 
      { "name": "ephemeral",
        "doc": "a disk that may be reformatted on upgrade" }, 
      { "name": "suspend",
        "doc": "a disk that stores a suspend image" }, 
      { "name": "crashdump",
        "doc": "a disk that stores VM crashdump information" }, 
      { "name": "ha_statefile",
        "doc": "a disk used for HA storage heartbeating" }, 
      { "name": "metadata",
        "doc": "a disk used for HA Pool metadata" }, 
      { "name": "redo_log",
        "doc": "a disk used for a general metadata redo-log" }, 
      { "name": "rrd",
        "doc": "a disk that stores SR-level RRDs" }, 
      { "name": "pvs_cache",
        "doc": "a disk that stores PVS cache data" }, 
      { "name": "cbt_metadata",
        "doc": "Metadata about a snapshot VDI that has been deleted: the set of blocks that changed between some previous version of the disk and the version tracked by the snapshot." } ] }, 
  { "name": "on_boot",
    "values": [ 
      { "name": "reset",
        "doc": "When a VM containing this VDI is started, the contents of the VDI are reset to the state they were in when this flag was last set." }, 
      { "name": "persist",
        "doc": "Standard behaviour." } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "A virtual disk image" } ],
"tag": "" }, { "name": "VBD",
"description": "A virtual block device",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "allowed_operations",
    "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client.",
    "type": "enum vbd_operations set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "default": "{}" }, 
  { "name": "current_operations",
    "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task.",
    "type": "(string -> enum vbd_operations) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "default": "{}" }, 
  { "name": "VM",
    "description": "the virtual machine",
    "type": "VM ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the virtual machine" } ] }, 
  { "name": "VDI",
    "description": "the virtual disk",
    "type": "VDI ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the virtual disk" } ] }, 
  { "name": "device",
    "description": "device seen by the guest e.g. hda1",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "device seen by the guest e.g. hda1" } ] }, 
  { "name": "userdevice",
    "description": "user-friendly device name e.g. 0,1,2,etc.",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "user-friendly device name e.g. 0,1,2,etc." } ] }, 
  { "name": "bootable",
    "description": "true if this VBD is bootable",
    "type": "bool",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if this VBD is bootable" } ] }, 
  { "name": "mode",
    "description": "the mode the VBD should be mounted with",
    "type": "enum vbd_mode",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the mode the VBD should be mounted with" } ] }, 
  { "name": "type",
    "description": "how the VBD will appear to the guest (e.g. disk or CD)",
    "type": "enum vbd_type",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "how the VBD will appear to the guest (e.g. disk or CD)" } ] }, 
  { "name": "unpluggable",
    "description": "true if this VBD will support hot-unplug",
    "type": "bool",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "true if this VBD will support hot-unplug" } ],
    "default": "true" }, 
  { "name": "storage_lock",
    "description": "true if a storage level lock was acquired",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if a storage level lock was acquired" } ] }, 
  { "name": "empty",
    "description": "if true this represents an empty drive",
    "type": "bool",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "if true this represents an empty drive" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ] }, 
  { "name": "currently_attached",
    "description": "is the device currently attached (erased on reboot)",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "is the device currently attached (erased on reboot)" } ] }, 
  { "name": "status_code",
    "description": "error/success code associated with last attach-operation (erased on reboot)",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "error/success code associated with last attach-operation (erased on reboot)" } ] }, 
  { "name": "status_detail",
    "description": "error/success information associated with last attach-operation status (erased on reboot)",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "error/success information associated with last attach-operation status (erased on reboot)" } ] }, 
  { "name": "runtime_properties",
    "description": "Device runtime properties",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Device runtime properties" } ] }, 
  { "name": "qos_algorithm_type",
    "description": "QoS algorithm to use",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "QoS algorithm to use" } ] }, 
  { "name": "qos_algorithm_params",
    "description": "parameters for chosen QoS algorithm",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "parameters for chosen QoS algorithm" } ] }, 
  { "name": "qos_supported_algorithms",
    "description": "supported QoS algorithms for this VBD",
    "type": "string set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "supported QoS algorithms for this VBD" } ] }, 
  { "name": "metrics",
    "description": "metrics associated with this VBD",
    "type": "VBD_metrics ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled in favour of RRDs" } ] } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of VBD references to VBD records for all VBDs known to the system.",
    "result": [ "(VBD ref -> VBD record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual block device" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the VBDs known to the system.",
    "result": [ "VBD ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual block device" } ],
    "implicit": true }, 
  { "name": "set_mode",
    "description": "Sets the mode of the VBD. The power_state of the VM must be halted.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "Reference to the object" }, 
      { "type": "enum vbd_mode",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Sets the mode of the VBD. The power_state of the VM must be halted." } ],
    "implicit": false }, 
  { "name": "assert_attachable",
    "description": "Throws an error if this VBD could not be attached to this VM if the VM were running. Intended for debugging.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "The VBD to query" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Throws an error if this VBD could not be attached to this VM if the VM were running. Intended for debugging." } ],
    "implicit": false }, 
  { "name": "unplug_force",
    "description": "Forcibly unplug the specified VBD",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "The VBD to forcibly unplug" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Forcibly unplug the specified VBD" } ],
    "implicit": false }, 
  { "name": "unplug",
    "description": "Hot-unplug the specified VBD, dynamically unattaching it from the running VM",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "The VBD to hot-unplug" } ],
    "errors": [ 
      { "name": "DEVICE_DETACH_REJECTED",
        "doc": "The VM rejected the attempt to detach the device." }, 
      { "name": "DEVICE_ALREADY_DETACHED",
        "doc": "The device is not currently attached" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Hot-unplug the specified VBD, dynamically unattaching it from the running VM" } ],
    "implicit": false }, 
  { "name": "plug",
    "description": "Hotplug the specified VBD, dynamically attaching it to the running VM",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "The VBD to hotplug" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Hotplug the specified VBD, dynamically attaching it to the running VM" } ],
    "implicit": false }, 
  { "name": "insert",
    "description": "Insert new media into the device",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "vbd",
        "doc": "The vbd representing the CDROM-like device" }, 
      { "type": "VDI ref",
        "name": "vdi",
        "doc": "The new VDI to 'insert'" } ],
    "errors": [ 
      { "name": "VBD_NOT_REMOVABLE_MEDIA",
        "doc": "Media could not be ejected because it is not removable" }, 
      { "name": "VBD_NOT_EMPTY",
        "doc": "Operation could not be performed because the drive is not empty" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Insert new media into the device" } ],
    "implicit": false }, 
  { "name": "eject",
    "description": "Remove the media from the device and leave it empty",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "vbd",
        "doc": "The vbd representing the CDROM-like device" } ],
    "errors": [ 
      { "name": "VBD_NOT_REMOVABLE_MEDIA",
        "doc": "Media could not be ejected because it is not removable" }, 
      { "name": "VBD_IS_EMPTY",
        "doc": "Operation could not be performed because the drive is empty" } ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Remove the media from the device and leave it empty" } ],
    "implicit": false }, 
  { "name": "remove_from_qos_algorithm_params",
    "description": "Remove the given key and its corresponding value from the qos/algorithm_params field of the given VBD.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "parameters for chosen QoS algorithm" } ],
    "implicit": true }, 
  { "name": "add_to_qos_algorithm_params",
    "description": "Add the given key-value pair to the qos/algorithm_params field of the given VBD.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "parameters for chosen QoS algorithm" } ],
    "implicit": true }, 
  { "name": "set_qos_algorithm_params",
    "description": "Set the qos/algorithm_params field of the given VBD.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "parameters for chosen QoS algorithm" } ],
    "implicit": true }, 
  { "name": "set_qos_algorithm_type",
    "description": "Set the qos/algorithm_type field of the given VBD.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "QoS algorithm to use" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given VBD.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given VBD.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given VBD.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_unpluggable",
    "description": "Set the unpluggable field of the given VBD.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "bool",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "true if this VBD will support hot-unplug" } ],
    "implicit": true }, 
  { "name": "set_type",
    "description": "Set the type field of the given VBD.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "enum vbd_type",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "how the VBD will appear to the guest (e.g. disk or CD)" } ],
    "implicit": true }, 
  { "name": "set_bootable",
    "description": "Set the bootable field of the given VBD.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "bool",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if this VBD is bootable" } ],
    "implicit": true }, 
  { "name": "set_userdevice",
    "description": "Set the userdevice field of the given VBD.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "user-friendly device name e.g. 0,1,2,etc." } ],
    "implicit": true }, 
  { "name": "get_metrics",
    "description": "Get the metrics field of the given VBD.",
    "result": [ "VBD_metrics ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled in favour of RRDs" } ],
    "implicit": true }, 
  { "name": "get_qos_supported_algorithms",
    "description": "Get the qos/supported_algorithms field of the given VBD.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "supported QoS algorithms for this VBD" } ],
    "implicit": true }, 
  { "name": "get_qos_algorithm_params",
    "description": "Get the qos/algorithm_params field of the given VBD.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "parameters for chosen QoS algorithm" } ],
    "implicit": true }, 
  { "name": "get_qos_algorithm_type",
    "description": "Get the qos/algorithm_type field of the given VBD.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "QoS algorithm to use" } ],
    "implicit": true }, 
  { "name": "get_runtime_properties",
    "description": "Get the runtime_properties field of the given VBD.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Device runtime properties" } ],
    "implicit": true }, 
  { "name": "get_status_detail",
    "description": "Get the status_detail field of the given VBD.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "error/success information associated with last attach-operation status (erased on reboot)" } ],
    "implicit": true }, 
  { "name": "get_status_code",
    "description": "Get the status_code field of the given VBD.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "error/success code associated with last attach-operation (erased on reboot)" } ],
    "implicit": true }, 
  { "name": "get_currently_attached",
    "description": "Get the currently_attached field of the given VBD.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "is the device currently attached (erased on reboot)" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given VBD.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_empty",
    "description": "Get the empty field of the given VBD.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "if true this represents an empty drive" } ],
    "implicit": true }, 
  { "name": "get_storage_lock",
    "description": "Get the storage_lock field of the given VBD.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if a storage level lock was acquired" } ],
    "implicit": true }, 
  { "name": "get_unpluggable",
    "description": "Get the unpluggable field of the given VBD.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "true if this VBD will support hot-unplug" } ],
    "implicit": true }, 
  { "name": "get_type",
    "description": "Get the type field of the given VBD.",
    "result": [ "enum vbd_type", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "how the VBD will appear to the guest (e.g. disk or CD)" } ],
    "implicit": true }, 
  { "name": "get_mode",
    "description": "Get the mode field of the given VBD.",
    "result": [ "enum vbd_mode", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the mode the VBD should be mounted with" } ],
    "implicit": true }, 
  { "name": "get_bootable",
    "description": "Get the bootable field of the given VBD.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if this VBD is bootable" } ],
    "implicit": true }, 
  { "name": "get_userdevice",
    "description": "Get the userdevice field of the given VBD.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "user-friendly device name e.g. 0,1,2,etc." } ],
    "implicit": true }, 
  { "name": "get_device",
    "description": "Get the device field of the given VBD.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "device seen by the guest e.g. hda1" } ],
    "implicit": true }, 
  { "name": "get_VDI",
    "description": "Get the VDI field of the given VBD.",
    "result": [ "VDI ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the virtual disk" } ],
    "implicit": true }, 
  { "name": "get_VM",
    "description": "Get the VM field of the given VBD.",
    "result": [ "VM ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the virtual machine" } ],
    "implicit": true }, 
  { "name": "get_current_operations",
    "description": "Get the current_operations field of the given VBD.",
    "result": [ "(string -> enum vbd_operations) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "implicit": true }, 
  { "name": "get_allowed_operations",
    "description": "Get the allowed_operations field of the given VBD.",
    "result": [ "enum vbd_operations set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given VBD.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy the specified VBD instance.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual block device" } ],
    "implicit": true }, 
  { "name": "create",
    "description": "Create a new VBD instance, and return its handle.\nThe constructor args are: VM*, VDI*, userdevice*, bootable*, mode*, type*, unpluggable, empty*, other_config*, qos_algorithm_type*, qos_algorithm_params* (* = non-optional).",
    "result": [ "VBD ref", "reference to the newly created object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD record",
        "name": "args",
        "doc": "All constructor arguments" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual block device" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the VBD instance with the specified UUID.",
    "result": [ "VBD ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual block device" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given VBD.",
    "result": [ "VBD record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual block device" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "vbd_operations",
    "values": [ 
      { "name": "attach",
        "doc": "Attempting to attach this VBD to a VM" }, 
      { "name": "eject",
        "doc": "Attempting to eject the media from this VBD" }, 
      { "name": "insert",
        "doc": "Attempting to insert new media into this VBD" }, 
      { "name": "plug",
        "doc": "Attempting to hotplug this VBD" }, 
      { "name": "unplug",
        "doc": "Attempting to hot unplug this VBD" }, 
      { "name": "unplug_force",
        "doc": "Attempting to forcibly unplug this VBD" }, 
      { "name": "pause",
        "doc": "Attempting to pause a block device backend" }, 
      { "name": "unpause",
        "doc": "Attempting to unpause a block device backend" } ] }, 
  { "name": "vbd_type",
    "values": [ 
      { "name": "CD",
        "doc": "VBD will appear to guest as CD" }, 
      { "name": "Disk",
        "doc": "VBD will appear to guest as disk" }, 
      { "name": "Floppy",
        "doc": "VBD will appear as a floppy" } ] }, 
  { "name": "vbd_mode",
    "values": [ 
      { "name": "RO",
        "doc": "only read-only access will be allowed" }, 
      { "name": "RW",
        "doc": "read-write access will be allowed" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "A virtual block device" } ],
"tag": "" }, { "name": "VBD_metrics",
"description": "The metrics associated with a virtual block device",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "io_read_kbs",
    "description": "Read bandwidth (KiB/s)",
    "type": "float",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled and replaced by RRDs" } ] }, 
  { "name": "io_write_kbs",
    "description": "Write bandwidth (KiB/s)",
    "type": "float",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled and replaced by RRDs" } ] }, 
  { "name": "last_updated",
    "description": "Time at which this information was last updated",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time at which this information was last updated" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of VBD_metrics references to VBD_metrics records for all VBD_metrics instances known to the system.",
    "result": [ "(VBD_metrics ref -> VBD_metrics record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a virtual block device" }, 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled in favour of RRD" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the VBD_metrics instances known to the system.",
    "result": [ "VBD_metrics ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a virtual block device" }, 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled in favour of RRD" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given VBD_metrics.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD_metrics ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given VBD_metrics.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD_metrics ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given VBD_metrics.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD_metrics ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given VBD_metrics.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_last_updated",
    "description": "Get the last_updated field of the given VBD_metrics.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time at which this information was last updated" } ],
    "implicit": true }, 
  { "name": "get_io_write_kbs",
    "description": "Get the io/write_kbs field of the given VBD_metrics.",
    "result": [ "float", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled and replaced by RRDs" } ],
    "implicit": true }, 
  { "name": "get_io_read_kbs",
    "description": "Get the io/read_kbs field of the given VBD_metrics.",
    "result": [ "float", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled and replaced by RRDs" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given VBD_metrics.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the VBD_metrics instance with the specified UUID.",
    "result": [ "VBD_metrics ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a virtual block device" }, 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled in favour of RRD" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given VBD_metrics.",
    "result": [ "VBD_metrics record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VBD_metrics ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The metrics associated with a virtual block device" }, 
      { "transition": "removed",
        "release": "tampa",
        "description": "Disabled in favour of RRD" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "The metrics associated with a virtual block device" }, 
  { "transition": "removed",
    "release": "tampa",
    "description": "Disabled in favour of RRD" } ],
"tag": "" }, { "name": "PBD",
"description": "The physical block devices through which hosts access SRs",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "host",
    "description": "physical machine on which the pbd is available",
    "type": "host ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "physical machine on which the pbd is available" } ] }, 
  { "name": "SR",
    "description": "the storage repository that the pbd realises",
    "type": "SR ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the storage repository that the pbd realises" } ] }, 
  { "name": "device_config",
    "description": "a config string to string map that is provided to the host's SR-backend-driver",
    "type": "(string -> string) map",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a config string to string map that is provided to the host's SR-backend-driver" } ] }, 
  { "name": "currently_attached",
    "description": "is the SR currently attached on this host?",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "is the SR currently attached on this host?" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of PBD references to PBD records for all PBDs known to the system.",
    "result": [ "(PBD ref -> PBD record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The physical block devices through which hosts access SRs" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the PBDs known to the system.",
    "result": [ "PBD ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The physical block devices through which hosts access SRs" } ],
    "implicit": true }, 
  { "name": "set_device_config",
    "description": "Sets the PBD's device_config field",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PBD ref",
        "name": "self",
        "doc": "The PBD to modify" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "The new value of the PBD's device_config" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "Sets the PBD's device_config field" } ],
    "implicit": false }, 
  { "name": "unplug",
    "description": "Deactivate the specified PBD, causing the referenced SR to be detached and nolonger scanned",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PBD ref",
        "name": "self",
        "doc": "The PBD to deactivate" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Deactivate the specified PBD, causing the referenced SR to be detached and nolonger scanned" } ],
    "implicit": false }, 
  { "name": "plug",
    "description": "Activate the specified PBD, causing the referenced SR to be attached and scanned",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PBD ref",
        "name": "self",
        "doc": "The PBD to activate" } ],
    "errors": [ 
      { "name": "SR_UNKNOWN_DRIVER",
        "doc": "The SR could not be connected because the driver was not recognised." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Activate the specified PBD, causing the referenced SR to be attached and scanned" } ],
    "implicit": false }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given PBD.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PBD ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given PBD.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PBD ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given PBD.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PBD ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given PBD.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_currently_attached",
    "description": "Get the currently_attached field of the given PBD.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "is the SR currently attached on this host?" } ],
    "implicit": true }, 
  { "name": "get_device_config",
    "description": "Get the device_config field of the given PBD.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a config string to string map that is provided to the host's SR-backend-driver" } ],
    "implicit": true }, 
  { "name": "get_SR",
    "description": "Get the SR field of the given PBD.",
    "result": [ "SR ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the storage repository that the pbd realises" } ],
    "implicit": true }, 
  { "name": "get_host",
    "description": "Get the host field of the given PBD.",
    "result": [ "host ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "physical machine on which the pbd is available" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given PBD.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy the specified PBD instance.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The physical block devices through which hosts access SRs" } ],
    "implicit": true }, 
  { "name": "create",
    "description": "Create a new PBD instance, and return its handle.\nThe constructor args are: host*, SR*, device_config*, other_config (* = non-optional).",
    "result": [ "PBD ref", "reference to the newly created object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PBD record",
        "name": "args",
        "doc": "All constructor arguments" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The physical block devices through which hosts access SRs" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the PBD instance with the specified UUID.",
    "result": [ "PBD ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The physical block devices through which hosts access SRs" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given PBD.",
    "result": [ "PBD record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PBD ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The physical block devices through which hosts access SRs" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "The physical block devices through which hosts access SRs" } ],
"tag": "" }, { "name": "crashdump",
"description": "A VM crashdump",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "VM",
    "description": "the virtual machine",
    "type": "VM ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the virtual machine" } ] }, 
  { "name": "VDI",
    "description": "the virtual disk",
    "type": "VDI ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the virtual disk" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of crashdump references to crashdump records for all crashdumps known to the system.",
    "result": [ "(crashdump ref -> crashdump record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A VM crashdump" }, 
      { "transition": "deprecated",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the crashdumps known to the system.",
    "result": [ "crashdump ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A VM crashdump" }, 
      { "transition": "deprecated",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy the specified crashdump",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "crashdump ref",
        "name": "self",
        "doc": "The crashdump to destroy" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Destroy the specified crashdump" } ],
    "implicit": false }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given crashdump.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "crashdump ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given crashdump.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "crashdump ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given crashdump.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "crashdump ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given crashdump.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "crashdump ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "miami",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_VDI",
    "description": "Get the VDI field of the given crashdump.",
    "result": [ "VDI ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "crashdump ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the virtual disk" } ],
    "implicit": true }, 
  { "name": "get_VM",
    "description": "Get the VM field of the given crashdump.",
    "result": [ "VM ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "crashdump ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the virtual machine" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given crashdump.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "crashdump ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the crashdump instance with the specified UUID.",
    "result": [ "crashdump ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A VM crashdump" }, 
      { "transition": "deprecated",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given crashdump.",
    "result": [ "crashdump record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "crashdump ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A VM crashdump" }, 
      { "transition": "deprecated",
        "release": "inverness",
        "description": "" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "A VM crashdump" }, 
  { "transition": "deprecated",
    "release": "inverness",
    "description": "" } ],
"tag": "" }, { "name": "VTPM",
"description": "A virtual TPM device",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "VM",
    "description": "the virtual machine",
    "type": "VM ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the virtual machine" } ] }, 
  { "name": "backend",
    "description": "the domain where the backend is located",
    "type": "VM ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the domain where the backend is located" } ] } ],
"messages": [ 
  { "name": "get_backend",
    "description": "Get the backend field of the given VTPM.",
    "result": [ "VM ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VTPM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the domain where the backend is located" } ],
    "implicit": true }, 
  { "name": "get_VM",
    "description": "Get the VM field of the given VTPM.",
    "result": [ "VM ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VTPM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the virtual machine" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given VTPM.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VTPM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy the specified VTPM instance.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VTPM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual TPM device" } ],
    "implicit": true }, 
  { "name": "create",
    "description": "Create a new VTPM instance, and return its handle.\nThe constructor args are: VM*, backend* (* = non-optional).",
    "result": [ "VTPM ref", "reference to the newly created object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VTPM record",
        "name": "args",
        "doc": "All constructor arguments" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual TPM device" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the VTPM instance with the specified UUID.",
    "result": [ "VTPM ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual TPM device" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given VTPM.",
    "result": [ "VTPM record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VTPM ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A virtual TPM device" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "A virtual TPM device" } ],
"tag": "" }, { "name": "console",
"description": "A console",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "protocol",
    "description": "the protocol used by this console",
    "type": "enum console_protocol",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the protocol used by this console" } ] }, 
  { "name": "location",
    "description": "URI for the console service",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "URI for the console service" } ] }, 
  { "name": "VM",
    "description": "VM to which this console is attached",
    "type": "VM ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "VM to which this console is attached" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ] } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of console references to console records for all consoles known to the system.",
    "result": [ "(console ref -> console record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A console" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the consoles known to the system.",
    "result": [ "console ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A console" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given console.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "console ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given console.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "console ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given console.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "console ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given console.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "console ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_VM",
    "description": "Get the VM field of the given console.",
    "result": [ "VM ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "console ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "VM to which this console is attached" } ],
    "implicit": true }, 
  { "name": "get_location",
    "description": "Get the location field of the given console.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "console ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "URI for the console service" } ],
    "implicit": true }, 
  { "name": "get_protocol",
    "description": "Get the protocol field of the given console.",
    "result": [ "enum console_protocol", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "console ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the protocol used by this console" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given console.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "console ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy the specified console instance.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "console ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A console" } ],
    "implicit": true }, 
  { "name": "create",
    "description": "Create a new console instance, and return its handle.\nThe constructor args are: other_config* (* = non-optional).",
    "result": [ "console ref", "reference to the newly created object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "console record",
        "name": "args",
        "doc": "All constructor arguments" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A console" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the console instance with the specified UUID.",
    "result": [ "console ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A console" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given console.",
    "result": [ "console record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "console ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A console" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "console_protocol",
    "values": [ 
      { "name": "vt100",
        "doc": "VT100 terminal" }, 
      { "name": "rfb",
        "doc": "Remote FrameBuffer protocol (as used in VNC)" }, 
      { "name": "rdp",
        "doc": "Remote Desktop Protocol" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "A console" } ],
"tag": "" }, { "name": "user",
"description": "A user of the system",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "short_name",
    "description": "short name (e.g. userid)",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "short name (e.g. userid)" } ] }, 
  { "name": "fullname",
    "description": "full name",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "full name" } ] }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given user.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "user ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given user.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "user ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given user.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "user ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "set_fullname",
    "description": "Set the fullname field of the given user.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "user ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "full name" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given user.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "user ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "additional configuration" } ],
    "implicit": true }, 
  { "name": "get_fullname",
    "description": "Get the fullname field of the given user.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "user ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "full name" } ],
    "implicit": true }, 
  { "name": "get_short_name",
    "description": "Get the short_name field of the given user.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "user ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "short name (e.g. userid)" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given user.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "user ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy the specified user instance.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "user ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A user of the system" }, 
      { "transition": "deprecated",
        "release": "george",
        "description": "Deprecated in favor of subject" } ],
    "implicit": true }, 
  { "name": "create",
    "description": "Create a new user instance, and return its handle.\nThe constructor args are: short_name*, fullname*, other_config (* = non-optional).",
    "result": [ "user ref", "reference to the newly created object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "user record",
        "name": "args",
        "doc": "All constructor arguments" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A user of the system" }, 
      { "transition": "deprecated",
        "release": "george",
        "description": "Deprecated in favor of subject" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the user instance with the specified UUID.",
    "result": [ "user ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A user of the system" }, 
      { "transition": "deprecated",
        "release": "george",
        "description": "Deprecated in favor of subject" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given user.",
    "result": [ "user record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "user ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "A user of the system" }, 
      { "transition": "deprecated",
        "release": "george",
        "description": "Deprecated in favor of subject" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "rio",
    "description": "A user of the system" }, 
  { "transition": "deprecated",
    "release": "george",
    "description": "Deprecated in favor of subject" } ],
"tag": "" }, { "name": "data_source",
"description": "Data sources for logging in RRDs",
"fields": [ 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "default": "\"\"" }, 
  { "name": "enabled",
    "description": "true if the data source is being logged",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if the data source is being logged" } ] }, 
  { "name": "standard",
    "description": "true if the data source is enabled by default. Non-default data sources cannot be disabled",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "true if the data source is enabled by default. Non-default data sources cannot be disabled" } ] }, 
  { "name": "units",
    "description": "the units of the value",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the units of the value" } ] }, 
  { "name": "min",
    "description": "the minimum value of the data source",
    "type": "float",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the minimum value of the data source" } ] }, 
  { "name": "max",
    "description": "the maximum value of the data source",
    "type": "float",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the maximum value of the data source" } ] }, 
  { "name": "value",
    "description": "current value of the data source",
    "type": "float",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "current value of the data source" } ] } ],
"messages": [  ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "orlando",
    "description": "Data sources for logging in RRDs" } ],
"tag": "" }, { "name": "blob",
"description": "A placeholder for a binary blob",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "default": "\"\"" }, 
  { "name": "size",
    "description": "Size of the binary data, in bytes",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Size of the binary data, in bytes" } ] }, 
  { "name": "public",
    "description": "True if the blob is publicly accessible",
    "type": "bool",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "True if the blob is publicly accessible" } ],
    "default": "false" }, 
  { "name": "last_updated",
    "description": "Time at which the data in the blob was last updated",
    "type": "datetime",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time at which the data in the blob was last updated" } ] }, 
  { "name": "mime_type",
    "description": "The mime type associated with this object. Defaults to 'application/octet-stream' if the empty string is supplied",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The mime type associated with this object. Defaults to 'application/octet-stream' if the empty string is supplied" } ] } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of blob references to blob records for all blobs known to the system.",
    "result": [ "(blob ref -> blob record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "A placeholder for a binary blob" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the blobs known to the system.",
    "result": [ "blob ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "A placeholder for a binary blob" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "blob ref",
        "name": "self",
        "doc": "The reference of the blob to destroy" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "" } ],
    "implicit": false }, 
  { "name": "create",
    "description": "Create a placeholder for a binary blob",
    "result": [ "blob ref", "The reference to the created blob" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "mime_type",
        "doc": "The mime-type of the blob. Defaults to 'application/octet-stream' if the empty string is supplied" }, 
      { "type": "bool",
        "name": "public",
        "doc": "True if the blob should be publicly available" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "Create a placeholder for a binary blob" } ],
    "implicit": false }, 
  { "name": "set_public",
    "description": "Set the public field of the given blob.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "blob ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "bool",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "True if the blob is publicly accessible" } ],
    "implicit": true }, 
  { "name": "set_name_description",
    "description": "Set the name/description field of the given blob.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "blob ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "set_name_label",
    "description": "Set the name/label field of the given blob.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "blob ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_mime_type",
    "description": "Get the mime_type field of the given blob.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "blob ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The mime type associated with this object. Defaults to 'application/octet-stream' if the empty string is supplied" } ],
    "implicit": true }, 
  { "name": "get_last_updated",
    "description": "Get the last_updated field of the given blob.",
    "result": [ "datetime", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "blob ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Time at which the data in the blob was last updated" } ],
    "implicit": true }, 
  { "name": "get_public",
    "description": "Get the public field of the given blob.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "blob ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "tampa",
        "description": "True if the blob is publicly accessible" } ],
    "implicit": true }, 
  { "name": "get_size",
    "description": "Get the size field of the given blob.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "blob ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Size of the binary data, in bytes" } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given blob.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "blob ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given blob.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "blob ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given blob.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "blob ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the blob instances with the given label.",
    "result": [ "blob ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "A placeholder for a binary blob" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the blob instance with the specified UUID.",
    "result": [ "blob ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "A placeholder for a binary blob" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given blob.",
    "result": [ "blob record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "blob ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "A placeholder for a binary blob" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "orlando",
    "description": "A placeholder for a binary blob" } ],
"tag": "" }, { "name": "message",
"description": "An message for the attention of the administrator",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "name",
    "description": "The name of the message",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The name of the message" } ] }, 
  { "name": "priority",
    "description": "The message priority, 0 being low priority",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The message priority, 0 being low priority" } ] }, 
  { "name": "cls",
    "description": "The class of the object this message is associated with",
    "type": "enum cls",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The class of the object this message is associated with" } ] }, 
  { "name": "obj_uuid",
    "description": "The uuid of the object this message is associated with",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The uuid of the object this message is associated with" } ] }, 
  { "name": "timestamp",
    "description": "The time at which the message was created",
    "type": "datetime",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The time at which the message was created" } ] }, 
  { "name": "body",
    "description": "The body of the message",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "The body of the message" } ] } ],
"messages": [ 
  { "name": "get_all_records_where",
    "description": "",
    "result": [ "(message ref -> message record) map", "The messages" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "expr",
        "doc": "The expression to match (not currently used)" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "" } ],
    "implicit": false }, 
  { "name": "get_all_records",
    "description": "",
    "result": [ "(message ref -> message record) map", "The messages" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "" } ],
    "implicit": false }, 
  { "name": "get_by_uuid",
    "description": "",
    "result": [ "message ref", "The message reference" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "The uuid of the message" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "" } ],
    "implicit": false }, 
  { "name": "get_record",
    "description": "",
    "result": [ "message record", "The message record" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "message ref",
        "name": "self",
        "doc": "The reference to the message" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "" } ],
    "implicit": false }, 
  { "name": "get_since",
    "description": "",
    "result": [ "(message ref -> message record) map", "The relevant messages" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "datetime",
        "name": "since",
        "doc": "The cutoff time" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "" } ],
    "implicit": false }, 
  { "name": "get_all",
    "description": "",
    "result": [ "message ref set", "The references to the messages" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "" } ],
    "implicit": false }, 
  { "name": "get",
    "description": "",
    "result": [ "(message ref -> message record) map", "The relevant messages" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "enum cls",
        "name": "cls",
        "doc": "The class of object" }, 
      { "type": "string",
        "name": "obj_uuid",
        "doc": "The uuid of the object" }, 
      { "type": "datetime",
        "name": "since",
        "doc": "The cutoff time" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "" } ],
    "implicit": false }, 
  { "name": "destroy",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "message ref",
        "name": "self",
        "doc": "The reference of the message to destroy" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "" } ],
    "implicit": false }, 
  { "name": "create",
    "description": "",
    "result": [ "message ref", "The reference of the created message" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "name",
        "doc": "The name of the message" }, 
      { "type": "int",
        "name": "priority",
        "doc": "The priority of the message" }, 
      { "type": "enum cls",
        "name": "cls",
        "doc": "The class of object this message is associated with" }, 
      { "type": "string",
        "name": "obj_uuid",
        "doc": "The uuid of the object this message is associated with" }, 
      { "type": "string",
        "name": "body",
        "doc": "The body of the message" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "orlando",
        "description": "" } ],
    "implicit": false } ],
"enums": [ 
  { "name": "cls",
    "values": [ 
      { "name": "VM",
        "doc": "VM" }, 
      { "name": "Host",
        "doc": "Host" }, 
      { "name": "SR",
        "doc": "SR" }, 
      { "name": "Pool",
        "doc": "Pool" }, 
      { "name": "VMPP",
        "doc": "VMPP" }, 
      { "name": "VMSS",
        "doc": "VMSS" }, 
      { "name": "PVS_proxy",
        "doc": "PVS_proxy" }, 
      { "name": "VDI",
        "doc": "VDI" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "orlando",
    "description": "An message for the attention of the administrator" } ],
"tag": "" }, { "name": "secret",
"description": "A secret",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "value",
    "description": "the secret",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the secret" } ] }, 
  { "name": "other_config",
    "description": "other_config",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "other_config" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of secret references to secret records for all secrets known to the system.",
    "result": [ "(secret ref -> secret record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "A secret" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the secrets known to the system.",
    "result": [ "secret ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "A secret" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given secret.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "secret ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "other_config" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given secret.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "secret ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "other_config" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given secret.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "secret ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "other_config" } ],
    "implicit": true }, 
  { "name": "set_value",
    "description": "Set the value field of the given secret.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "secret ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the secret" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given secret.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "secret ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "other_config" } ],
    "implicit": true }, 
  { "name": "get_value",
    "description": "Get the value field of the given secret.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "secret ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "the secret" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given secret.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "secret ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy the specified secret instance.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "secret ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "A secret" } ],
    "implicit": true }, 
  { "name": "create",
    "description": "Create a new secret instance, and return its handle.\nThe constructor args are: value*, other_config (* = non-optional).",
    "result": [ "secret ref", "reference to the newly created object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "secret record",
        "name": "args",
        "doc": "All constructor arguments" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "A secret" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the secret instance with the specified UUID.",
    "result": [ "secret ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "A secret" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given secret.",
    "result": [ "secret record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "secret ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "midnight-ride",
        "description": "A secret" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "midnight-ride",
    "description": "A secret" } ],
"tag": "" }, { "name": "tunnel",
"description": "A tunnel for network traffic",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "access_PIF",
    "description": "The interface through which the tunnel is accessed",
    "type": "PIF ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "The interface through which the tunnel is accessed" } ],
    "default": "Null" }, 
  { "name": "transport_PIF",
    "description": "The interface used by the tunnel",
    "type": "PIF ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "The interface used by the tunnel" } ],
    "default": "Null" }, 
  { "name": "status",
    "description": "Status information about the tunnel",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Status information about the tunnel" } ],
    "default": "{\"active\" -> \"false\"}" }, 
  { "name": "other_config",
    "description": "Additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Additional configuration" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of tunnel references to tunnel records for all tunnels known to the system.",
    "result": [ "(tunnel ref -> tunnel record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "A tunnel for network traffic" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the tunnels known to the system.",
    "result": [ "tunnel ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "A tunnel for network traffic" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy a tunnel",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "tunnel ref",
        "name": "self",
        "doc": "tunnel to destroy" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Destroy a tunnel" } ],
    "implicit": false }, 
  { "name": "create",
    "description": "Create a tunnel",
    "result": [ "tunnel ref", "The reference of the created tunnel object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "transport_PIF",
        "doc": "PIF which receives the tagged traffic" }, 
      { "type": "network ref",
        "name": "network",
        "doc": "Network to receive the tunnelled traffic" } ],
    "errors": [ 
      { "name": "OPENVSWITCH_NOT_ACTIVE",
        "doc": "This operation needs the OpenVSwitch networking backend to be enabled on all hosts in the pool." }, 
      { "name": "TRANSPORT_PIF_NOT_CONFIGURED",
        "doc": "The tunnel transport PIF has no IP configuration set." }, 
      { "name": "IS_TUNNEL_ACCESS_PIF",
        "doc": "Cannot create a VLAN or tunnel on top of a tunnel access PIF - use the underlying transport PIF instead." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Create a tunnel" } ],
    "implicit": false }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given tunnel.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "tunnel ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Additional configuration" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given tunnel.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "tunnel ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Additional configuration" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given tunnel.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "tunnel ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Additional configuration" } ],
    "implicit": true }, 
  { "name": "remove_from_status",
    "description": "Remove the given key and its corresponding value from the status field of the given tunnel.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "tunnel ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Status information about the tunnel" } ],
    "implicit": true }, 
  { "name": "add_to_status",
    "description": "Add the given key-value pair to the status field of the given tunnel.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "tunnel ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Status information about the tunnel" } ],
    "implicit": true }, 
  { "name": "set_status",
    "description": "Set the status field of the given tunnel.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "tunnel ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Status information about the tunnel" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given tunnel.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "tunnel ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Additional configuration" } ],
    "implicit": true }, 
  { "name": "get_status",
    "description": "Get the status field of the given tunnel.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "tunnel ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Status information about the tunnel" } ],
    "implicit": true }, 
  { "name": "get_transport_PIF",
    "description": "Get the transport_PIF field of the given tunnel.",
    "result": [ "PIF ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "tunnel ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "The interface used by the tunnel" } ],
    "implicit": true }, 
  { "name": "get_access_PIF",
    "description": "Get the access_PIF field of the given tunnel.",
    "result": [ "PIF ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "tunnel ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "The interface through which the tunnel is accessed" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given tunnel.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "tunnel ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the tunnel instance with the specified UUID.",
    "result": [ "tunnel ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "A tunnel for network traffic" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given tunnel.",
    "result": [ "tunnel record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "tunnel ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cowley",
        "description": "A tunnel for network traffic" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "cowley",
    "description": "A tunnel for network traffic" } ],
"tag": "networking" }, { "name": "network_sriov",
"description": "network-sriov which connects logical pif and physical pif",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ] }, 
  { "name": "physical_PIF",
    "description": "The PIF that has SR-IOV enabled",
    "type": "PIF ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "default": "Null" }, 
  { "name": "logical_PIF",
    "description": "The logical PIF to connect to the SR-IOV network after enable SR-IOV on the physical PIF",
    "type": "PIF ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "default": "Null" }, 
  { "name": "requires_reboot",
    "description": "Indicates whether the host need to be rebooted before SR-IOV is enabled on the physical PIF",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "default": "false" }, 
  { "name": "configuration_mode",
    "description": "The mode for configure network sriov",
    "type": "enum sriov_configuration_mode",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "default": "unknown" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of network_sriov references to network_sriov records for all network_sriovs known to the system.",
    "result": [ "(network_sriov ref -> network_sriov record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the network_sriovs known to the system.",
    "result": [ "network_sriov ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_remaining_capacity",
    "description": "Get the number of free SR-IOV VFs on the associated PIF",
    "result": [ "int", "The number of free SR-IOV VFs on the associated PIF" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network_sriov ref",
        "name": "self",
        "doc": "the NETWORK_SRIOV object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "destroy",
    "description": "Disable SR-IOV on the specific PIF. It will destroy the network-sriov and the logical PIF accordingly.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network_sriov ref",
        "name": "self",
        "doc": "SRIOV to destroy" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "create",
    "description": "Enable SR-IOV on the specific PIF. It will create a network-sriov based on the specific PIF and automatically create a logical PIF to connect the specific network.",
    "result": [ "network_sriov ref", "The reference of the created network_sriov object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "pif",
        "doc": "PIF on which to enable SR-IOV" }, 
      { "type": "network ref",
        "name": "network",
        "doc": "Network to connect SR-IOV virtual functions with VM VIFs" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "get_configuration_mode",
    "description": "Get the configuration_mode field of the given network_sriov.",
    "result": [ "enum sriov_configuration_mode", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network_sriov ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_requires_reboot",
    "description": "Get the requires_reboot field of the given network_sriov.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network_sriov ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_logical_PIF",
    "description": "Get the logical_PIF field of the given network_sriov.",
    "result": [ "PIF ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network_sriov ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_physical_PIF",
    "description": "Get the physical_PIF field of the given network_sriov.",
    "result": [ "PIF ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network_sriov ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given network_sriov.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network_sriov ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "Unique identifier/object reference" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the network_sriov instance with the specified UUID.",
    "result": [ "network_sriov ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given network_sriov.",
    "result": [ "network_sriov record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network_sriov ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "sriov_configuration_mode",
    "values": [ 
      { "name": "sysfs",
        "doc": "Configure network sriov by sysfs, do not need reboot" }, 
      { "name": "modprobe",
        "doc": "Configure network sriov by modprobe, need reboot" }, 
      { "name": "unknown",
        "doc": "Unknown mode" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "kolkata",
    "description": "" } ],
"tag": "" }, { "name": "PCI",
"description": "A PCI device",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ] }, 
  { "name": "class_name",
    "description": "PCI class name",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "vendor_name",
    "description": "Vendor name",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "device_name",
    "description": "Device name",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "host",
    "description": "Physical machine that owns the PCI device",
    "type": "host ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "pci_id",
    "description": "PCI ID of the physical device",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "dependencies",
    "description": "List of dependent PCI devices",
    "type": "PCI ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ] }, 
  { "name": "other_config",
    "description": "Additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "{}" }, 
  { "name": "subsystem_vendor_name",
    "description": "Subsystem vendor name",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "clearwater-whetstone",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "subsystem_device_name",
    "description": "Subsystem device name",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "clearwater-whetstone",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "driver_name",
    "description": "Driver name",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "default": "\"\"" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of PCI references to PCI records for all PCIs known to the system.",
    "result": [ "(PCI ref -> PCI record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the PCIs known to the system.",
    "result": [ "PCI ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given PCI.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PCI ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given PCI.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PCI ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given PCI.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PCI ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_driver_name",
    "description": "Get the driver_name field of the given PCI.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PCI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_subsystem_device_name",
    "description": "Get the subsystem_device_name field of the given PCI.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PCI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "clearwater-whetstone",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_subsystem_vendor_name",
    "description": "Get the subsystem_vendor_name field of the given PCI.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PCI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "clearwater-whetstone",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given PCI.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PCI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_dependencies",
    "description": "Get the dependencies field of the given PCI.",
    "result": [ "PCI ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PCI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_pci_id",
    "description": "Get the pci_id field of the given PCI.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PCI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_host",
    "description": "Get the host field of the given PCI.",
    "result": [ "host ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PCI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_device_name",
    "description": "Get the device_name field of the given PCI.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PCI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_vendor_name",
    "description": "Get the vendor_name field of the given PCI.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PCI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_class_name",
    "description": "Get the class_name field of the given PCI.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PCI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given PCI.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PCI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the PCI instance with the specified UUID.",
    "result": [ "PCI ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given PCI.",
    "result": [ "PCI record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PCI ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "boston",
    "description": "" } ],
"tag": "" }, { "name": "PGPU",
"description": "A physical GPU (pGPU)",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ] }, 
  { "name": "PCI",
    "description": "Link to underlying PCI device",
    "type": "PCI ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "GPU_group",
    "description": "GPU group the pGPU is contained in",
    "type": "GPU_group ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "host",
    "description": "Host that owns the GPU",
    "type": "host ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "other_config",
    "description": "Additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "{}" }, 
  { "name": "supported_VGPU_types",
    "description": "List of VGPU types supported by the underlying hardware",
    "type": "VGPU_type ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ] }, 
  { "name": "enabled_VGPU_types",
    "description": "List of VGPU types which have been enabled for this PGPU",
    "type": "VGPU_type ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ] }, 
  { "name": "resident_VGPUs",
    "description": "List of VGPUs running on this PGPU",
    "type": "VGPU ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ] }, 
  { "name": "supported_VGPU_max_capacities",
    "description": "A map relating each VGPU type supported on this GPU to the maximum number of VGPUs of that type which can run simultaneously on this GPU",
    "type": "(VGPU_type ref -> int) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-productisation",
        "description": "" } ],
    "default": "{}" }, 
  { "name": "dom0_access",
    "description": "The accessibility of this device from dom0",
    "type": "enum pgpu_dom0_access",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cream",
        "description": "" } ],
    "default": "enabled" }, 
  { "name": "is_system_display_device",
    "description": "Is this device the system display device",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cream",
        "description": "" } ],
    "default": "false" }, 
  { "name": "compatibility_metadata",
    "description": "PGPU metadata to determine whether a VGPU can migrate between two PGPUs",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of PGPU references to PGPU records for all PGPUs known to the system.",
    "result": [ "(PGPU ref -> PGPU record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the PGPUs known to the system.",
    "result": [ "PGPU ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "disable_dom0_access",
    "description": "",
    "result": [ "enum pgpu_dom0_access", "The accessibility of this PGPU from dom0" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "The PGPU to which dom0 will be denied access" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cream",
        "description": "" } ],
    "implicit": false }, 
  { "name": "enable_dom0_access",
    "description": "",
    "result": [ "enum pgpu_dom0_access", "The accessibility of this PGPU from dom0" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "The PGPU to which dom0 will be granted access" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cream",
        "description": "" } ],
    "implicit": false }, 
  { "name": "get_remaining_capacity",
    "description": "",
    "result": [ "int", "The number of VGPUs of the specified type which can still be started on this PGPU" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "The PGPU to query" }, 
      { "type": "VGPU_type ref",
        "name": "vgpu_type",
        "doc": "The VGPU type for which we want to find the number of VGPUs which can still be started on this PGPU" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": false }, 
  { "name": "set_GPU_group",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "The PGPU to move to a new group" }, 
      { "type": "GPU_group ref",
        "name": "value",
        "doc": "The group to which the PGPU will be moved" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": false }, 
  { "name": "set_enabled_VGPU_types",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "The PGPU on which we are enabling a set of VGPU types" }, 
      { "type": "VGPU_type ref set",
        "name": "value",
        "doc": "The VGPU types to enable" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": false }, 
  { "name": "remove_enabled_VGPU_types",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "The PGPU from which we are removing an enabled VGPU type" }, 
      { "type": "VGPU_type ref",
        "name": "value",
        "doc": "The VGPU type to disable" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": false }, 
  { "name": "add_enabled_VGPU_types",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "The PGPU to which we are adding an enabled VGPU type" }, 
      { "type": "VGPU_type ref",
        "name": "value",
        "doc": "The VGPU type to enable" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": false }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given PGPU.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given PGPU.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given PGPU.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_compatibility_metadata",
    "description": "Get the compatibility_metadata field of the given PGPU.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_is_system_display_device",
    "description": "Get the is_system_display_device field of the given PGPU.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cream",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_dom0_access",
    "description": "Get the dom0_access field of the given PGPU.",
    "result": [ "enum pgpu_dom0_access", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "cream",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_supported_VGPU_max_capacities",
    "description": "Get the supported_VGPU_max_capacities field of the given PGPU.",
    "result": [ "(VGPU_type ref -> int) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-productisation",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_resident_VGPUs",
    "description": "Get the resident_VGPUs field of the given PGPU.",
    "result": [ "VGPU ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_enabled_VGPU_types",
    "description": "Get the enabled_VGPU_types field of the given PGPU.",
    "result": [ "VGPU_type ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_supported_VGPU_types",
    "description": "Get the supported_VGPU_types field of the given PGPU.",
    "result": [ "VGPU_type ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given PGPU.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_host",
    "description": "Get the host field of the given PGPU.",
    "result": [ "host ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_GPU_group",
    "description": "Get the GPU_group field of the given PGPU.",
    "result": [ "GPU_group ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_PCI",
    "description": "Get the PCI field of the given PGPU.",
    "result": [ "PCI ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given PGPU.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the PGPU instance with the specified UUID.",
    "result": [ "PGPU ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given PGPU.",
    "result": [ "PGPU record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "pgpu_dom0_access",
    "values": [ 
      { "name": "enabled",
        "doc": "dom0 can access this device as normal" }, 
      { "name": "disable_on_reboot",
        "doc": "On host reboot dom0 will be blocked from accessing this device" }, 
      { "name": "disabled",
        "doc": "dom0 cannot access this device" }, 
      { "name": "enable_on_reboot",
        "doc": "On host reboot dom0 will be allowed to access this device" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "boston",
    "description": "" } ],
"tag": "" }, { "name": "GPU_group",
"description": "A group of compatible GPUs across the resource pool",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ] }, 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "PGPUs",
    "description": "List of pGPUs in the group",
    "type": "PGPU ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ] }, 
  { "name": "VGPUs",
    "description": "List of vGPUs using the group",
    "type": "VGPU ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ] }, 
  { "name": "GPU_types",
    "description": "List of GPU types (vendor+device ID) that can be in this group",
    "type": "string set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "{}" }, 
  { "name": "other_config",
    "description": "Additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "{}" }, 
  { "name": "allocation_algorithm",
    "description": "Current allocation of vGPUs to pGPUs for this group",
    "type": "enum allocation_algorithm",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "default": "depth_first" }, 
  { "name": "supported_VGPU_types",
    "description": "vGPU types supported on at least one of the pGPUs in this group",
    "type": "VGPU_type ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-productisation",
        "description": "" } ] }, 
  { "name": "enabled_VGPU_types",
    "description": "vGPU types supported on at least one of the pGPUs in this group",
    "type": "VGPU_type ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-productisation",
        "description": "" } ] } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of GPU_group references to GPU_group records for all GPU_groups known to the system.",
    "result": [ "(GPU_group ref -> GPU_group record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the GPU_groups known to the system.",
    "result": [ "GPU_group ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_remaining_capacity",
    "description": "",
    "result": [ "int", "The number of VGPUs of the given type which can still be started on the PGPUs in the group" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "The GPU group to query" }, 
      { "type": "VGPU_type ref",
        "name": "vgpu_type",
        "doc": "The VGPU_type for which the remaining capacity will be calculated" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": false }, 
  { "name": "destroy",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "The GPU group to destroy" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": false }, 
  { "name": "create",
    "description": "",
    "result": [ "GPU_group ref", "" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "name_label",
        "doc": "" }, 
      { "type": "string",
        "name": "name_description",
        "doc": "" }, 
      { "type": "(string -> string) map",
        "name": "other_config",
        "doc": "" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": false }, 
  { "name": "set_allocation_algorithm",
    "description": "Set the allocation_algorithm field of the given GPU_group.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "enum allocation_algorithm",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given GPU_group.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given GPU_group.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given GPU_group.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "set_name_description",
    "description": "Set the name/description field of the given GPU_group.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "set_name_label",
    "description": "Set the name/label field of the given GPU_group.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_enabled_VGPU_types",
    "description": "Get the enabled_VGPU_types field of the given GPU_group.",
    "result": [ "VGPU_type ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-productisation",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_supported_VGPU_types",
    "description": "Get the supported_VGPU_types field of the given GPU_group.",
    "result": [ "VGPU_type ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-productisation",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_allocation_algorithm",
    "description": "Get the allocation_algorithm field of the given GPU_group.",
    "result": [ "enum allocation_algorithm", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given GPU_group.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_GPU_types",
    "description": "Get the GPU_types field of the given GPU_group.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_VGPUs",
    "description": "Get the VGPUs field of the given GPU_group.",
    "result": [ "VGPU ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_PGPUs",
    "description": "Get the PGPUs field of the given GPU_group.",
    "result": [ "PGPU ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given GPU_group.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given GPU_group.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given GPU_group.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the GPU_group instances with the given label.",
    "result": [ "GPU_group ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the GPU_group instance with the specified UUID.",
    "result": [ "GPU_group ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given GPU_group.",
    "result": [ "GPU_group record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "GPU_group ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "allocation_algorithm",
    "values": [ 
      { "name": "breadth_first",
        "doc": "vGPUs of a given type are allocated evenly across supporting pGPUs." }, 
      { "name": "depth_first",
        "doc": "vGPUs of a given type are allocated on supporting pGPUs until they are full." } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "boston",
    "description": "" } ],
"tag": "" }, { "name": "VGPU",
"description": "A virtual GPU (vGPU)",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ] }, 
  { "name": "VM",
    "description": "VM that owns the vGPU",
    "type": "VM ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ] }, 
  { "name": "GPU_group",
    "description": "GPU group used by the vGPU",
    "type": "GPU_group ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ] }, 
  { "name": "device",
    "description": "Guest PCI slot (a value of 0 means auto-assign to first empty slot, valid slot is in range of [11,31] for multi-VGPU purpose)",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Only 1 vGPU with device id 0 is supported" }, 
      { "transition": "changed",
        "release": "plymouth",
        "description": "Multiple vGPUs are supported, device refers to guest PCI slot" } ],
    "default": "\"0\"" }, 
  { "name": "currently_attached",
    "description": "Reflects whether the virtual device is currently connected to a physical device",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "false" }, 
  { "name": "other_config",
    "description": "Additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "default": "{}" }, 
  { "name": "type",
    "description": "Preset type for this VGPU",
    "type": "VGPU_type ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "resident_on",
    "description": "The PGPU on which this VGPU is running",
    "type": "PGPU ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "scheduled_to_be_resident_on",
    "description": "The PGPU on which this VGPU is scheduled to run",
    "type": "PGPU ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "compatibility_metadata",
    "description": "VGPU metadata to determine whether a VGPU can migrate between two PGPUs",
    "type": "(string -> string) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "{}" }, 
  { "name": "extra_args",
    "description": "Extra arguments for vGPU and passed to demu",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "plymouth",
        "description": "" } ],
    "default": "\"\"" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of VGPU references to VGPU records for all VGPUs known to the system.",
    "result": [ "(VGPU ref -> VGPU record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the VGPUs known to the system.",
    "result": [ "VGPU ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU ref",
        "name": "self",
        "doc": "The vGPU to destroy" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": false }, 
  { "name": "create",
    "description": "",
    "result": [ "VGPU ref", "reference to the newly created object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "VM",
        "doc": "" }, 
      { "type": "GPU_group ref",
        "name": "GPU_group",
        "doc": "" }, 
      { "type": "string",
        "name": "device",
        "doc": "" }, 
      { "type": "(string -> string) map",
        "name": "other_config",
        "doc": "" }, 
      { "type": "VGPU_type ref",
        "name": "type",
        "doc": "" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": false }, 
  { "name": "set_extra_args",
    "description": "Set the extra_args field of the given VGPU.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "plymouth",
        "description": "" } ],
    "implicit": true }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given VGPU.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given VGPU.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given VGPU.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_extra_args",
    "description": "Get the extra_args field of the given VGPU.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "plymouth",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_compatibility_metadata",
    "description": "Get the compatibility_metadata field of the given VGPU.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_scheduled_to_be_resident_on",
    "description": "Get the scheduled_to_be_resident_on field of the given VGPU.",
    "result": [ "PGPU ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_resident_on",
    "description": "Get the resident_on field of the given VGPU.",
    "result": [ "PGPU ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_type",
    "description": "Get the type field of the given VGPU.",
    "result": [ "VGPU_type ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given VGPU.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_currently_attached",
    "description": "Get the currently_attached field of the given VGPU.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_device",
    "description": "Get the device field of the given VGPU.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "Only 1 vGPU with device id 0 is supported" }, 
      { "transition": "changed",
        "release": "plymouth",
        "description": "Multiple vGPUs are supported, device refers to guest PCI slot" } ],
    "implicit": true }, 
  { "name": "get_GPU_group",
    "description": "Get the GPU_group field of the given VGPU.",
    "result": [ "GPU_group ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_VM",
    "description": "Get the VM field of the given VGPU.",
    "result": [ "VM ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given VGPU.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the VGPU instance with the specified UUID.",
    "result": [ "VGPU ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given VGPU.",
    "result": [ "VGPU record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "boston",
        "description": "" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "boston",
    "description": "" } ],
"tag": "" }, { "name": "VGPU_type",
"description": "A type of virtual GPU",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ] }, 
  { "name": "vendor_name",
    "description": "Name of VGPU vendor",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "model_name",
    "description": "Model name associated with the VGPU type",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "framebuffer_size",
    "description": "Framebuffer size of the VGPU type, in bytes",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "default": "0" }, 
  { "name": "max_heads",
    "description": "Maximum number of displays supported by the VGPU type",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "default": "0" }, 
  { "name": "max_resolution_x",
    "description": "Maximum resolution (width) supported by the VGPU type",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-productisation",
        "description": "" } ],
    "default": "0" }, 
  { "name": "max_resolution_y",
    "description": "Maximum resolution (height) supported by the VGPU type",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-productisation",
        "description": "" } ],
    "default": "0" }, 
  { "name": "supported_on_PGPUs",
    "description": "List of PGPUs that support this VGPU type",
    "type": "PGPU ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ] }, 
  { "name": "enabled_on_PGPUs",
    "description": "List of PGPUs that have this VGPU type enabled",
    "type": "PGPU ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ] }, 
  { "name": "VGPUs",
    "description": "List of VGPUs of this type",
    "type": "VGPU ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ] }, 
  { "name": "supported_on_GPU_groups",
    "description": "List of GPU groups in which at least one PGPU supports this VGPU type",
    "type": "GPU_group ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-productisation",
        "description": "" } ] }, 
  { "name": "enabled_on_GPU_groups",
    "description": "List of GPU groups in which at least one have this VGPU type enabled",
    "type": "GPU_group ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-productisation",
        "description": "" } ] }, 
  { "name": "implementation",
    "description": "The internal implementation of this VGPU type",
    "type": "enum vgpu_type_implementation",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "default": "passthrough" }, 
  { "name": "identifier",
    "description": "Key used to identify VGPU types and avoid creating duplicates - this field is used internally and not intended for interpretation by API clients",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "experimental",
    "description": "Indicates whether VGPUs of this type should be considered experimental",
    "type": "bool",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "default": "false" }, 
  { "name": "compatible_types_in_vm",
    "description": "List of VGPU types which are compatible in one VM",
    "type": "VGPU_type ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "plymouth",
        "description": "" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of VGPU_type references to VGPU_type records for all VGPU_types known to the system.",
    "result": [ "(VGPU_type ref -> VGPU_type record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the VGPU_types known to the system.",
    "result": [ "VGPU_type ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_compatible_types_in_vm",
    "description": "Get the compatible_types_in_vm field of the given VGPU_type.",
    "result": [ "VGPU_type ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU_type ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "plymouth",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_experimental",
    "description": "Get the experimental field of the given VGPU_type.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU_type ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_identifier",
    "description": "Get the identifier field of the given VGPU_type.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU_type ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_implementation",
    "description": "Get the implementation field of the given VGPU_type.",
    "result": [ "enum vgpu_type_implementation", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU_type ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "dundee",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_enabled_on_GPU_groups",
    "description": "Get the enabled_on_GPU_groups field of the given VGPU_type.",
    "result": [ "GPU_group ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU_type ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-productisation",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_supported_on_GPU_groups",
    "description": "Get the supported_on_GPU_groups field of the given VGPU_type.",
    "result": [ "GPU_group ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU_type ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-productisation",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_VGPUs",
    "description": "Get the VGPUs field of the given VGPU_type.",
    "result": [ "VGPU ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU_type ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_enabled_on_PGPUs",
    "description": "Get the enabled_on_PGPUs field of the given VGPU_type.",
    "result": [ "PGPU ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU_type ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_supported_on_PGPUs",
    "description": "Get the supported_on_PGPUs field of the given VGPU_type.",
    "result": [ "PGPU ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU_type ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_max_resolution_y",
    "description": "Get the max_resolution_y field of the given VGPU_type.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU_type ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-productisation",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_max_resolution_x",
    "description": "Get the max_resolution_x field of the given VGPU_type.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU_type ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-productisation",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_max_heads",
    "description": "Get the max_heads field of the given VGPU_type.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU_type ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_framebuffer_size",
    "description": "Get the framebuffer_size field of the given VGPU_type.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU_type ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_model_name",
    "description": "Get the model_name field of the given VGPU_type.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU_type ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_vendor_name",
    "description": "Get the vendor_name field of the given VGPU_type.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU_type ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given VGPU_type.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU_type ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the VGPU_type instance with the specified UUID.",
    "result": [ "VGPU_type ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given VGPU_type.",
    "result": [ "VGPU_type record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VGPU_type ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "vgpu-tech-preview",
        "description": "" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "vgpu_type_implementation",
    "values": [ 
      { "name": "passthrough",
        "doc": "Pass through an entire physical GPU to a guest" }, 
      { "name": "nvidia",
        "doc": "vGPU using NVIDIA hardware" }, 
      { "name": "gvt_g",
        "doc": "vGPU using Intel GVT-g" }, 
      { "name": "mxgpu",
        "doc": "vGPU using AMD MxGPU" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "vgpu-tech-preview",
    "description": "" } ],
"tag": "" }, { "name": "PVS_site",
"description": "machines serving blocks of data for provisioning VMs",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ] }, 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "PVS_uuid",
    "description": "Unique identifier of the PVS site, as configured in PVS",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "cache_storage",
    "description": "The SR used by PVS proxy for the cache",
    "type": "PVS_cache_storage ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "default": "{}" }, 
  { "name": "servers",
    "description": "The set of PVS servers in the site",
    "type": "PVS_server ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ] }, 
  { "name": "proxies",
    "description": "The set of proxies associated with the site",
    "type": "PVS_proxy ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ] } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of PVS_site references to PVS_site records for all PVS_sites known to the system.",
    "result": [ "(PVS_site ref -> PVS_site record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the PVS_sites known to the system.",
    "result": [ "PVS_site ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "set_PVS_uuid",
    "description": "Update the PVS UUID of the PVS site",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_site ref",
        "name": "self",
        "doc": "this PVS site" }, 
      { "type": "string",
        "name": "value",
        "doc": "PVS UUID to be used" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": false }, 
  { "name": "forget",
    "description": "Remove a site's meta data",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_site ref",
        "name": "self",
        "doc": "this PVS site" } ],
    "errors": [ 
      { "name": "PVS_SITE_CONTAINS_RUNNING_PROXIES",
        "doc": "The PVS site contains running proxies." }, 
      { "name": "PVS_SITE_CONTAINS_SERVERS",
        "doc": "The PVS site contains servers and cannot be forgotten." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": false }, 
  { "name": "introduce",
    "description": "Introduce new PVS site",
    "result": [ "PVS_site ref", "the new PVS site" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "name_label",
        "doc": "name of the PVS site" }, 
      { "type": "string",
        "name": "name_description",
        "doc": "description of the PVS site" }, 
      { "type": "string",
        "name": "PVS_uuid",
        "doc": "unique identifier of the PVS site" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": false }, 
  { "name": "set_name_description",
    "description": "Set the name/description field of the given PVS_site.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_site ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "set_name_label",
    "description": "Set the name/label field of the given PVS_site.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_site ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_proxies",
    "description": "Get the proxies field of the given PVS_site.",
    "result": [ "PVS_proxy ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_site ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_servers",
    "description": "Get the servers field of the given PVS_site.",
    "result": [ "PVS_server ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_site ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_cache_storage",
    "description": "Get the cache_storage field of the given PVS_site.",
    "result": [ "PVS_cache_storage ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_site ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_PVS_uuid",
    "description": "Get the PVS_uuid field of the given PVS_site.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_site ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given PVS_site.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_site ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given PVS_site.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_site ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given PVS_site.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_site ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the PVS_site instances with the given label.",
    "result": [ "PVS_site ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the PVS_site instance with the specified UUID.",
    "result": [ "PVS_site ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given PVS_site.",
    "result": [ "PVS_site record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_site ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "ely",
    "description": "" } ],
"tag": "" }, { "name": "PVS_server",
"description": "individual machine serving provisioning (block) data",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ] }, 
  { "name": "addresses",
    "description": "IPv4 addresses of this server",
    "type": "string set",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "default": "{}" }, 
  { "name": "first_port",
    "description": "First UDP port accepted by this server",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "default": "0" }, 
  { "name": "last_port",
    "description": "Last UDP port accepted by this server",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "default": "0" }, 
  { "name": "site",
    "description": "PVS site this server is part of",
    "type": "PVS_site ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "default": "OpaqueRef:NULL" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of PVS_server references to PVS_server records for all PVS_servers known to the system.",
    "result": [ "(PVS_server ref -> PVS_server record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the PVS_servers known to the system.",
    "result": [ "PVS_server ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "forget",
    "description": "forget a PVS server",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_server ref",
        "name": "self",
        "doc": "this PVS server" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": false }, 
  { "name": "introduce",
    "description": "introduce new PVS server",
    "result": [ "PVS_server ref", "the new PVS server" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string set",
        "name": "addresses",
        "doc": "IPv4 addresses of the server" }, 
      { "type": "int",
        "name": "first_port",
        "doc": "first UDP port accepted by this server" }, 
      { "type": "int",
        "name": "last_port",
        "doc": "last UDP port accepted by this server" }, 
      { "type": "PVS_site ref",
        "name": "site",
        "doc": "PVS site this server is a part of" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": false }, 
  { "name": "get_site",
    "description": "Get the site field of the given PVS_server.",
    "result": [ "PVS_site ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_server ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_last_port",
    "description": "Get the last_port field of the given PVS_server.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_server ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_first_port",
    "description": "Get the first_port field of the given PVS_server.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_server ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_addresses",
    "description": "Get the addresses field of the given PVS_server.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_server ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given PVS_server.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_server ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the PVS_server instance with the specified UUID.",
    "result": [ "PVS_server ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given PVS_server.",
    "result": [ "PVS_server record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_server ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "ely",
    "description": "" } ],
"tag": "" }, { "name": "PVS_proxy",
"description": "a proxy connects a VM/VIF with a PVS site",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ] }, 
  { "name": "site",
    "description": "PVS site this proxy is part of",
    "type": "PVS_site ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "VIF",
    "description": "VIF of the VM using the proxy",
    "type": "VIF ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "currently_attached",
    "description": "true = VM is currently proxied",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "default": "false" }, 
  { "name": "status",
    "description": "The run-time status of the proxy",
    "type": "enum pvs_proxy_status",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "default": "stopped" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of PVS_proxy references to PVS_proxy records for all PVS_proxys known to the system.",
    "result": [ "(PVS_proxy ref -> PVS_proxy record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the PVS_proxys known to the system.",
    "result": [ "PVS_proxy ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "remove (or switch off) a PVS proxy for this VM",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_proxy ref",
        "name": "self",
        "doc": "this PVS proxy" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": false }, 
  { "name": "create",
    "description": "Configure a VM/VIF to use a PVS proxy",
    "result": [ "PVS_proxy ref", "the new PVS proxy" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_site ref",
        "name": "site",
        "doc": "PVS site that we proxy for" }, 
      { "type": "VIF ref",
        "name": "VIF",
        "doc": "VIF for the VM that needs to be proxied" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": false }, 
  { "name": "get_status",
    "description": "Get the status field of the given PVS_proxy.",
    "result": [ "enum pvs_proxy_status", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_proxy ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_currently_attached",
    "description": "Get the currently_attached field of the given PVS_proxy.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_proxy ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_VIF",
    "description": "Get the VIF field of the given PVS_proxy.",
    "result": [ "VIF ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_proxy ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_site",
    "description": "Get the site field of the given PVS_proxy.",
    "result": [ "PVS_site ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_proxy ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given PVS_proxy.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_proxy ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the PVS_proxy instance with the specified UUID.",
    "result": [ "PVS_proxy ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given PVS_proxy.",
    "result": [ "PVS_proxy record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_proxy ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "pvs_proxy_status",
    "values": [ 
      { "name": "stopped",
        "doc": "The proxy is not currently running" }, 
      { "name": "initialised",
        "doc": "The proxy is setup but has not yet cached anything" }, 
      { "name": "caching",
        "doc": "The proxy is currently caching data" }, 
      { "name": "incompatible_write_cache_mode",
        "doc": "The PVS device is configured to use an incompatible write-cache mode" }, 
      { "name": "incompatible_protocol_version",
        "doc": "The PVS protocol in use is not compatible with the PVS proxy" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "ely",
    "description": "" } ],
"tag": "" }, { "name": "PVS_cache_storage",
"description": "Describes the storage that is available to a PVS site for caching purposes",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ] }, 
  { "name": "host",
    "description": "The host on which this object defines PVS cache storage",
    "type": "host ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "SR",
    "description": "SR providing storage for the PVS cache",
    "type": "SR ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "site",
    "description": "The PVS_site for which this object defines the storage",
    "type": "PVS_site ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "size",
    "description": "The size of the cache VDI (in bytes)",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "default": "21474836480" }, 
  { "name": "VDI",
    "description": "The VDI used for caching",
    "type": "VDI ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "default": "OpaqueRef:NULL" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of PVS_cache_storage references to PVS_cache_storage records for all PVS_cache_storages known to the system.",
    "result": [ "(PVS_cache_storage ref -> PVS_cache_storage record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the PVS_cache_storages known to the system.",
    "result": [ "PVS_cache_storage ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_VDI",
    "description": "Get the VDI field of the given PVS_cache_storage.",
    "result": [ "VDI ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_cache_storage ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_size",
    "description": "Get the size field of the given PVS_cache_storage.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_cache_storage ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_site",
    "description": "Get the site field of the given PVS_cache_storage.",
    "result": [ "PVS_site ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_cache_storage ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_SR",
    "description": "Get the SR field of the given PVS_cache_storage.",
    "result": [ "SR ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_cache_storage ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_host",
    "description": "Get the host field of the given PVS_cache_storage.",
    "result": [ "host ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_cache_storage ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given PVS_cache_storage.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_cache_storage ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Destroy the specified PVS_cache_storage instance.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_cache_storage ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "create",
    "description": "Create a new PVS_cache_storage instance, and return its handle.\nThe constructor args are: host, SR, site, size (* = non-optional).",
    "result": [ "PVS_cache_storage ref", "reference to the newly created object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_cache_storage record",
        "name": "args",
        "doc": "All constructor arguments" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the PVS_cache_storage instance with the specified UUID.",
    "result": [ "PVS_cache_storage ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given PVS_cache_storage.",
    "result": [ "PVS_cache_storage record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PVS_cache_storage ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "ely",
        "description": "" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "ely",
    "description": "" } ],
"tag": "" }, { "name": "Feature",
"description": "A new piece of functionality",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ] }, 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "default": "\"\"" }, 
  { "name": "enabled",
    "description": "Indicates whether the feature is enabled",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "default": "false" }, 
  { "name": "experimental",
    "description": "Indicates whether the feature is experimental (as opposed to stable and fully supported)",
    "type": "bool",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "default": "false" }, 
  { "name": "version",
    "description": "The version of this feature",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "default": "\"1.0\"" }, 
  { "name": "host",
    "description": "The host where this feature is available",
    "type": "host ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ] } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of Feature references to Feature records for all Features known to the system.",
    "result": [ "(Feature ref -> Feature record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the Features known to the system.",
    "result": [ "Feature ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_host",
    "description": "Get the host field of the given Feature.",
    "result": [ "host ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Feature ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_version",
    "description": "Get the version field of the given Feature.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Feature ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_experimental",
    "description": "Get the experimental field of the given Feature.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Feature ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_enabled",
    "description": "Get the enabled field of the given Feature.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Feature ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given Feature.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Feature ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a notes field containing human-readable description" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given Feature.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Feature ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "a human-readable name" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given Feature.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Feature ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the Feature instances with the given label.",
    "result": [ "Feature ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the Feature instance with the specified UUID.",
    "result": [ "Feature ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given Feature.",
    "result": [ "Feature record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Feature ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "falcon",
    "description": "" } ],
"tag": "" }, { "name": "SDN_controller",
"description": "Describes the SDN controller that is to connect with the pool",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ] }, 
  { "name": "protocol",
    "description": "Protocol to connect with SDN controller",
    "type": "enum sdn_controller_protocol",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "default": "ssl" }, 
  { "name": "address",
    "description": "IP address of the controller",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "port",
    "description": "TCP port of the controller",
    "type": "int",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "default": "0" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of SDN_controller references to SDN_controller records for all SDN_controllers known to the system.",
    "result": [ "(SDN_controller ref -> SDN_controller record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the SDN_controllers known to the system.",
    "result": [ "SDN_controller ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true }, 
  { "name": "forget",
    "description": "Remove the OVS manager of the pool and destroy the db record.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SDN_controller ref",
        "name": "self",
        "doc": "this SDN controller" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": false }, 
  { "name": "introduce",
    "description": "Introduce an SDN controller to the pool.",
    "result": [ "SDN_controller ref", "the introduced SDN controller" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "enum sdn_controller_protocol",
        "name": "protocol",
        "doc": "Protocol to connect with the controller." }, 
      { "type": "string",
        "name": "address",
        "doc": "IP address of the controller." }, 
      { "type": "int",
        "name": "port",
        "doc": "TCP port of the controller." } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": false }, 
  { "name": "get_port",
    "description": "Get the port field of the given SDN_controller.",
    "result": [ "int", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SDN_controller ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_address",
    "description": "Get the address field of the given SDN_controller.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SDN_controller ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_protocol",
    "description": "Get the protocol field of the given SDN_controller.",
    "result": [ "enum sdn_controller_protocol", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SDN_controller ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given SDN_controller.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SDN_controller ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the SDN_controller instance with the specified UUID.",
    "result": [ "SDN_controller ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given SDN_controller.",
    "result": [ "SDN_controller record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "SDN_controller ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "falcon",
        "description": "" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "sdn_controller_protocol",
    "values": [ 
      { "name": "ssl",
        "doc": "Active ssl connection" }, 
      { "name": "pssl",
        "doc": "Passive ssl connection" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "falcon",
    "description": "" } ],
"tag": "" }, { "name": "vdi_nbd_server_info",
"description": "Details for connecting to a VDI using the Network Block Device protocol",
"fields": [ 
  { "name": "exportname",
    "description": "The exportname to request over NBD. This holds details including an authentication token, so it must be protected appropriately. Clients should regard the exportname as an opaque string or token.",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ] }, 
  { "name": "address",
    "description": "An address on which the server can be reached; this can be IPv4, IPv6, or a DNS name.",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ] }, 
  { "name": "port",
    "description": "The TCP port",
    "type": "int",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ] }, 
  { "name": "cert",
    "description": "The TLS certificate of the server",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ] }, 
  { "name": "subject",
    "description": "For convenience, this redundant field holds a DNS (hostname) subject of the certificate. This can be a wildcard, but only for a certificate that has a wildcard subject and no concrete hostname subjects.",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ] } ],
"messages": [  ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "inverness",
    "description": "" } ],
"tag": "" }, { "name": "PUSB",
"description": "A physical USB device",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ] }, 
  { "name": "USB_group",
    "description": "USB group the PUSB is contained in",
    "type": "USB_group ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "host",
    "description": "Physical machine that owns the USB device",
    "type": "host ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "path",
    "description": "port path of USB device",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "vendor_id",
    "description": "vendor id of the USB device",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "vendor_desc",
    "description": "vendor description of the USB device",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "product_id",
    "description": "product id of the USB device",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "product_desc",
    "description": "product description of the USB device",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "serial",
    "description": "serial of the USB device",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "version",
    "description": "USB device version",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "description",
    "description": "USB device description",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "passthrough_enabled",
    "description": "enabled for passthrough",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "false" }, 
  { "name": "other_config",
    "description": "additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of PUSB references to PUSB records for all PUSBs known to the system.",
    "result": [ "(PUSB ref -> PUSB record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the PUSBs known to the system.",
    "result": [ "PUSB ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "set_passthrough_enabled",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PUSB ref",
        "name": "self",
        "doc": "this PUSB" }, 
      { "type": "bool",
        "name": "value",
        "doc": "passthrough is enabled when true and disabled with false" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": false }, 
  { "name": "scan",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "The host" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": false }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given PUSB.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PUSB ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given PUSB.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PUSB ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given PUSB.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PUSB ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given PUSB.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_passthrough_enabled",
    "description": "Get the passthrough_enabled field of the given PUSB.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_description",
    "description": "Get the description field of the given PUSB.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_version",
    "description": "Get the version field of the given PUSB.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_serial",
    "description": "Get the serial field of the given PUSB.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_product_desc",
    "description": "Get the product_desc field of the given PUSB.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_product_id",
    "description": "Get the product_id field of the given PUSB.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_vendor_desc",
    "description": "Get the vendor_desc field of the given PUSB.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_vendor_id",
    "description": "Get the vendor_id field of the given PUSB.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_path",
    "description": "Get the path field of the given PUSB.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_host",
    "description": "Get the host field of the given PUSB.",
    "result": [ "host ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_USB_group",
    "description": "Get the USB_group field of the given PUSB.",
    "result": [ "USB_group ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given PUSB.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the PUSB instance with the specified UUID.",
    "result": [ "PUSB ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given PUSB.",
    "result": [ "PUSB record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "inverness",
    "description": "" } ],
"tag": "" }, { "name": "USB_group",
"description": "A group of compatible USBs across the resource pool",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ] }, 
  { "name": "name_label",
    "description": "a human-readable name",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "name_description",
    "description": "a notes field containing human-readable description",
    "type": "string",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "PUSBs",
    "description": "List of PUSBs in the group",
    "type": "PUSB ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ] }, 
  { "name": "VUSBs",
    "description": "List of VUSBs using the group",
    "type": "VUSB ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ] }, 
  { "name": "other_config",
    "description": "Additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of USB_group references to USB_group records for all USB_groups known to the system.",
    "result": [ "(USB_group ref -> USB_group record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the USB_groups known to the system.",
    "result": [ "USB_group ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "USB_group ref",
        "name": "self",
        "doc": "The USB group to destroy" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": false }, 
  { "name": "create",
    "description": "",
    "result": [ "USB_group ref", "" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "name_label",
        "doc": "" }, 
      { "type": "string",
        "name": "name_description",
        "doc": "" }, 
      { "type": "(string -> string) map",
        "name": "other_config",
        "doc": "" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": false }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given USB_group.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "USB_group ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given USB_group.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "USB_group ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given USB_group.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "USB_group ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "set_name_description",
    "description": "Set the name/description field of the given USB_group.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "USB_group ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "set_name_label",
    "description": "Set the name/label field of the given USB_group.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "USB_group ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given USB_group.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "USB_group ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_VUSBs",
    "description": "Get the VUSBs field of the given USB_group.",
    "result": [ "VUSB ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "USB_group ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_PUSBs",
    "description": "Get the PUSBs field of the given USB_group.",
    "result": [ "PUSB ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "USB_group ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_name_description",
    "description": "Get the name/description field of the given USB_group.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "USB_group ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_name_label",
    "description": "Get the name/label field of the given USB_group.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "USB_group ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given USB_group.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "USB_group ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_name_label",
    "description": "Get all the USB_group instances with the given label.",
    "result": [ "USB_group ref set", "references to objects with matching names" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "label",
        "doc": "label of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the USB_group instance with the specified UUID.",
    "result": [ "USB_group ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given USB_group.",
    "result": [ "USB_group record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "USB_group ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true } ],
"enums": [  ],
"lifecycle": [ 
  { "transition": "published",
    "release": "inverness",
    "description": "" } ],
"tag": "" }, { "name": "VUSB",
"description": "Describes the vusb device",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ] }, 
  { "name": "allowed_operations",
    "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client.",
    "type": "enum vusb_operations set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "default": "{}" }, 
  { "name": "current_operations",
    "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task.",
    "type": "(string -> enum vusb_operations) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "default": "{}" }, 
  { "name": "VM",
    "description": "VM that owns the VUSB",
    "type": "VM ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ] }, 
  { "name": "USB_group",
    "description": "USB group used by the VUSB",
    "type": "USB_group ref",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ] }, 
  { "name": "other_config",
    "description": "Additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "default": "{}" }, 
  { "name": "currently_attached",
    "description": "is the device currently attached",
    "type": "bool",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "is the device currently attached" } ],
    "default": "false" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of VUSB references to VUSB records for all VUSBs known to the system.",
    "result": [ "(VUSB ref -> VUSB record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the VUSBs known to the system.",
    "result": [ "VUSB ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "destroy",
    "description": "Removes a VUSB record from the database",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VUSB ref",
        "name": "self",
        "doc": "The VUSB to destroy about" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": false }, 
  { "name": "unplug",
    "description": "Unplug the vusb device from the vm.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VUSB ref",
        "name": "self",
        "doc": "vusb deivce" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": false }, 
  { "name": "create",
    "description": "Create a new VUSB record in the database only",
    "result": [ "VUSB ref", "The ref of the newly created VUSB record." ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VM ref",
        "name": "VM",
        "doc": "The VM" }, 
      { "type": "USB_group ref",
        "name": "USB_group",
        "doc": "" }, 
      { "type": "(string -> string) map",
        "name": "other_config",
        "doc": "" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": false }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given VUSB.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VUSB ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given VUSB.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VUSB ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given VUSB.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VUSB ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_currently_attached",
    "description": "Get the currently_attached field of the given VUSB.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "is the device currently attached" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given VUSB.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_USB_group",
    "description": "Get the USB_group field of the given VUSB.",
    "result": [ "USB_group ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_VM",
    "description": "Get the VM field of the given VUSB.",
    "result": [ "VM ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_current_operations",
    "description": "Get the current_operations field of the given VUSB.",
    "result": [ "(string -> enum vusb_operations) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "implicit": true }, 
  { "name": "get_allowed_operations",
    "description": "Get the allowed_operations field of the given VUSB.",
    "result": [ "enum vusb_operations set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given VUSB.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the VUSB instance with the specified UUID.",
    "result": [ "VUSB ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given VUSB.",
    "result": [ "VUSB record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "VUSB ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "inverness",
        "description": "" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "vusb_operations",
    "values": [ 
      { "name": "attach",
        "doc": "Attempting to attach this VUSB to a VM" }, 
      { "name": "plug",
        "doc": "Attempting to plug this VUSB into a VM" }, 
      { "name": "unplug",
        "doc": "Attempting to hot unplug this VUSB" } ] } ],
"lifecycle": [ 
  { "transition": "published",
    "release": "inverness",
    "description": "" } ],
"tag": "" }, { "name": "Cluster",
"description": "Cluster-wide Cluster metadata",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ] }, 
  { "name": "cluster_hosts",
    "description": "A list of the cluster_host objects associated with the Cluster",
    "type": "Cluster_host ref set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ] }, 
  { "name": "pending_forget",
    "description": "Internal field used by Host.destroy to store the IP of cluster members marked as permanently dead but not yet removed",
    "type": "string set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "lima",
        "description": "" } ],
    "default": "{}" }, 
  { "name": "cluster_token",
    "description": "The secret key used by xapi-clusterd when it talks to itself on other hosts",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "default": "\"\"" }, 
  { "name": "cluster_stack",
    "description": "Simply the string 'corosync'. No other cluster stacks are currently supported",
    "type": "string",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "default": "\"corosync\"" }, 
  { "name": "allowed_operations",
    "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client.",
    "type": "enum cluster_operation set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "default": "{}" }, 
  { "name": "current_operations",
    "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task.",
    "type": "(string -> enum cluster_operation) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "default": "{}" }, 
  { "name": "pool_auto_join",
    "description": "True if automatically joining new pool members to the cluster. This will be `true` in the first release",
    "type": "bool",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "default": "true" }, 
  { "name": "token_timeout",
    "description": "The corosync token timeout in seconds",
    "type": "float",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "the unit is milliseconds" }, 
      { "transition": "changed",
        "release": "lima",
        "description": "the unit is now seconds" } ],
    "default": "20." }, 
  { "name": "token_timeout_coefficient",
    "description": "The corosync token timeout coefficient in seconds",
    "type": "float",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "the unit is milliseconds" }, 
      { "transition": "changed",
        "release": "lima",
        "description": "the unit is now seconds" } ],
    "default": "1." }, 
  { "name": "cluster_config",
    "description": "Contains read-only settings for the cluster, such as timeouts and other options. It can only be set at cluster create time",
    "type": "(string -> string) map",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "default": "{}" }, 
  { "name": "other_config",
    "description": "Additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RW",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of Cluster references to Cluster records for all Clusters known to the system.",
    "result": [ "(Cluster ref -> Cluster record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the Clusters known to the system.",
    "result": [ "Cluster ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "pool_resync",
    "description": "Resynchronise the cluster_host objects across the pool. Creates them where they need creating and then plugs them",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "The cluster to resync" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "pool_destroy",
    "description": "Attempt to destroy the Cluster_host objects for all hosts in the pool and then destroy the Cluster.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "The cluster to destroy." } ],
    "errors": [ 
      { "name": "CLUSTER_STACK_IN_USE",
        "doc": "The cluster stack is already in use." }, 
      { "name": "CLUSTERING_DISABLED",
        "doc": "An operation was attempted while clustering was disabled on the cluster_host." }, 
      { "name": "CLUSTER_HOST_IS_LAST",
        "doc": "The last cluster host cannot be destroyed. Destroy the cluster instead" } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "pool_force_destroy",
    "description": "Attempt to force destroy the Cluster_host objects, and then destroy the Cluster.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "The cluster to force destroy." } ],
    "errors": [ 
      { "name": "CLUSTER_FORCE_DESTROY_FAILED",
        "doc": "Force destroy failed on a Cluster_host while force destroying the cluster." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "pool_create",
    "description": "Attempt to create a Cluster from the entire pool",
    "result": [ "Cluster ref", "the new Cluster" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "network ref",
        "name": "network",
        "doc": "the single network on which corosync carries out its inter-host communications" }, 
      { "type": "string",
        "name": "cluster_stack",
        "doc": "simply the string 'corosync'. No other cluster stacks are currently supported" }, 
      { "type": "float",
        "name": "token_timeout",
        "doc": "Corosync token timeout in seconds" }, 
      { "type": "float",
        "name": "token_timeout_coefficient",
        "doc": "Corosync token timeout coefficient in seconds" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "get_network",
    "description": "Returns the network used by the cluster for inter-host communication, i.e. the network shared by all cluster host PIFs",
    "result": [ "network ref", "network of cluster" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "the Cluster with the network" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "destroy",
    "description": "Destroys a Cluster object and the one remaining Cluster_host member",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "the Cluster to destroy" } ],
    "errors": [ 
      { "name": "CLUSTER_DOES_NOT_HAVE_ONE_NODE",
        "doc": "An operation failed as it expected the cluster to have only one node but found multiple cluster_hosts." }, 
      { "name": "CLUSTER_STACK_IN_USE",
        "doc": "The cluster stack is already in use." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "create",
    "description": "Creates a Cluster object and one Cluster_host object as its first member",
    "result": [ "Cluster ref", "the new Cluster" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "PIF ref",
        "name": "PIF",
        "doc": "The PIF to connect the cluster's first cluster_host to" }, 
      { "type": "string",
        "name": "cluster_stack",
        "doc": "simply the string 'corosync'. No other cluster stacks are currently supported" }, 
      { "type": "bool",
        "name": "pool_auto_join",
        "doc": "true if xapi is automatically joining new pool members to the cluster" }, 
      { "type": "float",
        "name": "token_timeout",
        "doc": "Corosync token timeout in seconds" }, 
      { "type": "float",
        "name": "token_timeout_coefficient",
        "doc": "Corosync token timeout coefficient in seconds" } ],
    "errors": [ 
      { "name": "INVALID_CLUSTER_STACK",
        "doc": "The cluster stack provided is not supported." }, 
      { "name": "INVALID_VALUE",
        "doc": "The value given is invalid" }, 
      { "name": "PIF_ALLOWS_UNPLUG",
        "doc": "The operation you requested cannot be performed because the specified PIF allows unplug." }, 
      { "name": "REQUIRED_PIF_IS_UNPLUGGED",
        "doc": "The operation you requested cannot be performed because the specified PIF is currently unplugged." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "remove_from_other_config",
    "description": "Remove the given key and its corresponding value from the other_config field of the given Cluster.  If the key is not in that Map, then do nothing.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to remove" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "add_to_other_config",
    "description": "Add the given key-value pair to the other_config field of the given Cluster.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "string",
        "name": "key",
        "doc": "Key to add" }, 
      { "type": "string",
        "name": "value",
        "doc": "Value to add" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "set_other_config",
    "description": "Set the other_config field of the given Cluster.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "reference to the object" }, 
      { "type": "(string -> string) map",
        "name": "value",
        "doc": "New value to set" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given Cluster.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_cluster_config",
    "description": "Get the cluster_config field of the given Cluster.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_token_timeout_coefficient",
    "description": "Get the token_timeout_coefficient field of the given Cluster.",
    "result": [ "float", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "the unit is milliseconds" }, 
      { "transition": "changed",
        "release": "lima",
        "description": "the unit is now seconds" } ],
    "implicit": true }, 
  { "name": "get_token_timeout",
    "description": "Get the token_timeout field of the given Cluster.",
    "result": [ "float", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "the unit is milliseconds" }, 
      { "transition": "changed",
        "release": "lima",
        "description": "the unit is now seconds" } ],
    "implicit": true }, 
  { "name": "get_pool_auto_join",
    "description": "Get the pool_auto_join field of the given Cluster.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_current_operations",
    "description": "Get the current_operations field of the given Cluster.",
    "result": [ "(string -> enum cluster_operation) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "implicit": true }, 
  { "name": "get_allowed_operations",
    "description": "Get the allowed_operations field of the given Cluster.",
    "result": [ "enum cluster_operation set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "implicit": true }, 
  { "name": "get_cluster_stack",
    "description": "Get the cluster_stack field of the given Cluster.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_cluster_token",
    "description": "Get the cluster_token field of the given Cluster.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_pending_forget",
    "description": "Get the pending_forget field of the given Cluster.",
    "result": [ "string set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "lima",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_cluster_hosts",
    "description": "Get the cluster_hosts field of the given Cluster.",
    "result": [ "Cluster_host ref set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given Cluster.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the Cluster instance with the specified UUID.",
    "result": [ "Cluster ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given Cluster.",
    "result": [ "Cluster record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "cluster_operation",
    "values": [ 
      { "name": "add",
        "doc": "adding a new member to the cluster" }, 
      { "name": "remove",
        "doc": "removing a member from the cluster" }, 
      { "name": "enable",
        "doc": "enabling any cluster member" }, 
      { "name": "disable",
        "doc": "disabling any cluster member" }, 
      { "name": "destroy",
        "doc": "completely destroying a cluster" } ] } ],
"lifecycle": [ 
  { "transition": "prototyped",
    "release": "kolkata",
    "description": "" } ],
"tag": "" }, { "name": "Cluster_host",
"description": "Cluster member metadata",
"fields": [ 
  { "name": "uuid",
    "description": "Unique identifier/object reference",
    "type": "string",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ] }, 
  { "name": "cluster",
    "description": "Reference to the Cluster object",
    "type": "Cluster ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "host",
    "description": "Reference to the Host object",
    "type": "host ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "enabled",
    "description": "Whether the cluster host believes that clustering should be enabled on this host",
    "type": "bool",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "default": "false" }, 
  { "name": "PIF",
    "description": "Reference to the PIF object",
    "type": "PIF ref",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "default": "OpaqueRef:NULL" }, 
  { "name": "joined",
    "description": "Whether the cluster host has joined the cluster",
    "type": "bool",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "default": "true" }, 
  { "name": "allowed_operations",
    "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client.",
    "type": "enum cluster_host_operation set",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "default": "{}" }, 
  { "name": "current_operations",
    "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task.",
    "type": "(string -> enum cluster_host_operation) map",
    "qualifier": "RO/runtime",
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "default": "{}" }, 
  { "name": "other_config",
    "description": "Additional configuration",
    "type": "(string -> string) map",
    "qualifier": "RO/constructor",
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "default": "{}" } ],
"messages": [ 
  { "name": "get_all_records",
    "description": "Return a map of Cluster_host references to Cluster_host records for all Cluster_hosts known to the system.",
    "result": [ "(Cluster_host ref -> Cluster_host record) map", "records of all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_all",
    "description": "Return a list of all the Cluster_hosts known to the system.",
    "result": [ "Cluster_host ref set", "references to all objects" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "disable",
    "description": "Disable cluster membership for an enabled cluster host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster_host ref",
        "name": "self",
        "doc": "the cluster_host to disable" } ],
    "errors": [ 
      { "name": "CLUSTER_STACK_IN_USE",
        "doc": "The cluster stack is already in use." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "force_destroy",
    "description": "Remove a host from an existing cluster forcefully.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster_host ref",
        "name": "self",
        "doc": "the cluster_host to remove from the cluster" } ],
    "errors": [ 
      { "name": "CLUSTER_STACK_IN_USE",
        "doc": "The cluster stack is already in use." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "enable",
    "description": "Enable cluster membership for a disabled cluster host.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster_host ref",
        "name": "self",
        "doc": "the cluster_host to enable" } ],
    "errors": [ 
      { "name": "PIF_ALLOWS_UNPLUG",
        "doc": "The operation you requested cannot be performed because the specified PIF allows unplug." }, 
      { "name": "REQUIRED_PIF_IS_UNPLUGGED",
        "doc": "The operation you requested cannot be performed because the specified PIF is currently unplugged." } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "destroy",
    "description": "Remove a host from an existing cluster.",
    "result": [ "void" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster_host ref",
        "name": "self",
        "doc": "the cluster_host to remove from the cluster" } ],
    "errors": [ 
      { "name": "CLUSTER_STACK_IN_USE",
        "doc": "The cluster stack is already in use." }, 
      { "name": "CLUSTERING_DISABLED",
        "doc": "An operation was attempted while clustering was disabled on the cluster_host." }, 
      { "name": "CLUSTER_HOST_IS_LAST",
        "doc": "The last cluster host cannot be destroyed. Destroy the cluster instead" } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "create",
    "description": "Add a new host to an existing cluster.",
    "result": [ "Cluster_host ref", "the newly created cluster_host object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster ref",
        "name": "cluster",
        "doc": "Cluster to join" }, 
      { "type": "host ref",
        "name": "host",
        "doc": "new cluster member" }, 
      { "type": "PIF ref",
        "name": "pif",
        "doc": "Network interface to use for communication" } ],
    "errors": [ 
      { "name": "PIF_NOT_ATTACHED_TO_HOST",
        "doc": "Cluster_host creation failed as the PIF provided is not attached to the host." }, 
      { "name": "NO_CLUSTER_HOSTS_REACHABLE",
        "doc": "No other cluster host was reachable when joining" } ],
    "roles": [ "pool-admin", "pool-operator" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": false }, 
  { "name": "get_other_config",
    "description": "Get the other_config field of the given Cluster_host.",
    "result": [ "(string -> string) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster_host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_current_operations",
    "description": "Get the current_operations field of the given Cluster_host.",
    "result": [ "(string -> enum cluster_host_operation) map", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster_host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "links each of the running tasks using this object (by reference) to a current_operation enum which describes the nature of the task." } ],
    "implicit": true }, 
  { "name": "get_allowed_operations",
    "description": "Get the allowed_operations field of the given Cluster_host.",
    "result": [ "enum cluster_host_operation set", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster_host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "published",
        "release": "rio",
        "description": "list of the operations allowed in this state. This list is advisory only and the server state may have changed by the time this field is read by a client." } ],
    "implicit": true }, 
  { "name": "get_joined",
    "description": "Get the joined field of the given Cluster_host.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster_host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_PIF",
    "description": "Get the PIF field of the given Cluster_host.",
    "result": [ "PIF ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster_host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_enabled",
    "description": "Get the enabled field of the given Cluster_host.",
    "result": [ "bool", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster_host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_host",
    "description": "Get the host field of the given Cluster_host.",
    "result": [ "host ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster_host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_cluster",
    "description": "Get the cluster field of the given Cluster_host.",
    "result": [ "Cluster ref", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster_host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_uuid",
    "description": "Get the uuid field of the given Cluster_host.",
    "result": [ "string", "value of the field" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster_host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_by_uuid",
    "description": "Get a reference to the Cluster_host instance with the specified UUID.",
    "result": [ "Cluster_host ref", "reference to the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "string",
        "name": "uuid",
        "doc": "UUID of object to return" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true }, 
  { "name": "get_record",
    "description": "Get a record containing the current state of the given Cluster_host.",
    "result": [ "Cluster_host record", "all fields from the object" ],
    "params": [ 
      { "type": "session ref",
        "name": "session_id",
        "doc": "Reference to a valid session" }, 
      { "type": "Cluster_host ref",
        "name": "self",
        "doc": "reference to the object" } ],
    "errors": [  ],
    "roles": [ "pool-admin", "pool-operator", "vm-power-admin", "vm-admin", "vm-operator", "read-only" ],
    "tag": "",
    "lifecycle": [ 
      { "transition": "prototyped",
        "release": "kolkata",
        "description": "" } ],
    "implicit": true } ],
"enums": [ 
  { "name": "cluster_host_operation",
    "values": [ 
      { "name": "enable",
        "doc": "enabling cluster membership on a particular host" }, 
      { "name": "disable",
        "doc": "disabling cluster membership on a particular host" }, 
      { "name": "destroy",
        "doc": "completely destroying a cluster host" } ] } ],
"lifecycle": [ 
  { "transition": "prototyped",
    "release": "kolkata",
    "description": "" } ],
"tag": "" } ]