[
  {
    "Name": "Action",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "Actions": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ActionResults"
            }
          }
        },
        "ApplicationsCharmsActions": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ApplicationsCharmActionsResults"
            }
          }
        },
        "Cancel": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ActionResults"
            }
          }
        },
        "Enqueue": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Actions"
            },
            "Result": {
              "$ref": "#/definitions/ActionResults"
            }
          }
        },
        "FindActionTagsByPrefix": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/FindTags"
            },
            "Result": {
              "$ref": "#/definitions/FindTagsResults"
            }
          }
        },
        "FindActionsByNames": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/FindActionsByNames"
            },
            "Result": {
              "$ref": "#/definitions/ActionsByNames"
            }
          }
        },
        "ListAll": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ActionsByReceivers"
            }
          }
        },
        "ListCompleted": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ActionsByReceivers"
            }
          }
        },
        "ListPending": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ActionsByReceivers"
            }
          }
        },
        "ListRunning": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ActionsByReceivers"
            }
          }
        },
        "Run": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/RunParams"
            },
            "Result": {
              "$ref": "#/definitions/ActionResults"
            }
          }
        },
        "RunOnAllMachines": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/RunParams"
            },
            "Result": {
              "$ref": "#/definitions/ActionResults"
            }
          }
        }
      },
      "definitions": {
        "Action": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "parameters": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "receiver": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "receiver",
            "name"
          ]
        },
        "ActionResult": {
          "type": "object",
          "properties": {
            "action": {
              "$ref": "#/definitions/Action"
            },
            "completed": {
              "type": "string",
              "format": "date-time"
            },
            "enqueued": {
              "type": "string",
              "format": "date-time"
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "message": {
              "type": "string"
            },
            "output": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "started": {
              "type": "string",
              "format": "date-time"
            },
            "status": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ActionResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ActionResult"
              }
            }
          },
          "additionalProperties": false
        },
        "ActionSpec": {
          "type": "object",
          "properties": {
            "description": {
              "type": "string"
            },
            "params": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "description",
            "params"
          ]
        },
        "Actions": {
          "type": "object",
          "properties": {
            "actions": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Action"
              }
            }
          },
          "additionalProperties": false
        },
        "ActionsByName": {
          "type": "object",
          "properties": {
            "actions": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ActionResult"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "name": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ActionsByNames": {
          "type": "object",
          "properties": {
            "actions": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ActionsByName"
              }
            }
          },
          "additionalProperties": false
        },
        "ActionsByReceiver": {
          "type": "object",
          "properties": {
            "actions": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ActionResult"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "receiver": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ActionsByReceivers": {
          "type": "object",
          "properties": {
            "actions": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ActionsByReceiver"
              }
            }
          },
          "additionalProperties": false
        },
        "ApplicationCharmActionsResult": {
          "type": "object",
          "properties": {
            "actions": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/ActionSpec"
                }
              }
            },
            "application-tag": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ApplicationsCharmActionsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ApplicationCharmActionsResult"
              }
            }
          },
          "additionalProperties": false
        },
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "FindActionsByNames": {
          "type": "object",
          "properties": {
            "names": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "FindTags": {
          "type": "object",
          "properties": {
            "prefixes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "prefixes"
          ]
        },
        "FindTagsResults": {
          "type": "object",
          "properties": {
            "matches": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/Entity"
                  }
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "matches"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "RunParams": {
          "type": "object",
          "properties": {
            "applications": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "commands": {
              "type": "string"
            },
            "machines": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "timeout": {
              "type": "integer"
            },
            "units": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "commands",
            "timeout"
          ]
        }
      }
    }
  },
  {
    "Name": "Agent",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "ClearReboot": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "CloudSpec": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/CloudSpecResults"
            }
          }
        },
        "ControllerConfig": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ControllerConfigResult"
            }
          }
        },
        "GetCloudSpec": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ModelTag"
            },
            "Result": {
              "$ref": "#/definitions/CloudSpecResult"
            }
          }
        },
        "GetEntities": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/AgentGetEntitiesResults"
            }
          }
        },
        "IsMaster": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/IsMasterResult"
            }
          }
        },
        "ModelConfig": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ModelConfigResult"
            }
          }
        },
        "SetPasswords": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/EntityPasswords"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "StateServingInfo": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StateServingInfo"
            }
          }
        },
        "WatchCredentials": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        },
        "WatchForModelConfigChanges": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/NotifyWatchResult"
            }
          }
        }
      },
      "definitions": {
        "AgentGetEntitiesResult": {
          "type": "object",
          "properties": {
            "container-type": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "jobs": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "life": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "life",
            "jobs",
            "container-type"
          ]
        },
        "AgentGetEntitiesResults": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AgentGetEntitiesResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "CloudCredential": {
          "type": "object",
          "properties": {
            "attrs": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "auth-type": {
              "type": "string"
            },
            "redacted": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "auth-type"
          ]
        },
        "CloudSpec": {
          "type": "object",
          "properties": {
            "credential": {
              "$ref": "#/definitions/CloudCredential"
            },
            "endpoint": {
              "type": "string"
            },
            "identity-endpoint": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "region": {
              "type": "string"
            },
            "storage-endpoint": {
              "type": "string"
            },
            "type": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "type",
            "name"
          ]
        },
        "CloudSpecResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/CloudSpec"
            }
          },
          "additionalProperties": false
        },
        "CloudSpecResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CloudSpecResult"
              }
            }
          },
          "additionalProperties": false
        },
        "ControllerConfigResult": {
          "type": "object",
          "properties": {
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "EntityPassword": {
          "type": "object",
          "properties": {
            "password": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "password"
          ]
        },
        "EntityPasswords": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntityPassword"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "changes"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "IsMasterResult": {
          "type": "object",
          "properties": {
            "master": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "master"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "ModelConfigResult": {
          "type": "object",
          "properties": {
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "ModelTag": {
          "type": "object",
          "additionalProperties": false
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "NotifyWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NotifyWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "StateServingInfo": {
          "type": "object",
          "properties": {
            "api-port": {
              "type": "integer"
            },
            "ca-private-key": {
              "type": "string"
            },
            "cert": {
              "type": "string"
            },
            "private-key": {
              "type": "string"
            },
            "shared-secret": {
              "type": "string"
            },
            "state-port": {
              "type": "integer"
            },
            "system-identity": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "api-port",
            "state-port",
            "cert",
            "private-key",
            "ca-private-key",
            "shared-secret",
            "system-identity"
          ]
        }
      }
    }
  },
  {
    "Name": "AgentTools",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "UpdateToolsAvailable": {
          "type": "object"
        }
      }
    }
  },
  {
    "Name": "AllModelWatcher",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "Next": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/AllWatcherNextResults"
            }
          }
        },
        "Stop": {
          "type": "object"
        }
      },
      "definitions": {
        "AllWatcherNextResults": {
          "type": "object",
          "properties": {
            "deltas": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Delta"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "deltas"
          ]
        },
        "Delta": {
          "type": "object",
          "properties": {
            "entity": {
              "type": "object",
              "additionalProperties": true
            },
            "removed": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "removed",
            "entity"
          ]
        }
      }
    }
  },
  {
    "Name": "AllWatcher",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "Next": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/AllWatcherNextResults"
            }
          }
        },
        "Stop": {
          "type": "object"
        }
      },
      "definitions": {
        "AllWatcherNextResults": {
          "type": "object",
          "properties": {
            "deltas": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Delta"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "deltas"
          ]
        },
        "Delta": {
          "type": "object",
          "properties": {
            "entity": {
              "type": "object",
              "additionalProperties": true
            },
            "removed": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "removed",
            "entity"
          ]
        }
      }
    }
  },
  {
    "Name": "Annotations",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "Get": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/AnnotationsGetResults"
            }
          }
        },
        "Set": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/AnnotationsSet"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        }
      },
      "definitions": {
        "AnnotationsGetResult": {
          "type": "object",
          "properties": {
            "annotations": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "entity": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/ErrorResult"
            }
          },
          "additionalProperties": false,
          "required": [
            "entity",
            "annotations"
          ]
        },
        "AnnotationsGetResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AnnotationsGetResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "AnnotationsSet": {
          "type": "object",
          "properties": {
            "annotations": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntityAnnotations"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "annotations"
          ]
        },
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "EntityAnnotations": {
          "type": "object",
          "properties": {
            "annotations": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "entity": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "entity",
            "annotations"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "Application",
    "Version": 3,
    "Schema": {
      "type": "object",
      "properties": {
        "AddRelation": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/AddRelation"
            },
            "Result": {
              "$ref": "#/definitions/AddRelationResults"
            }
          }
        },
        "AddUnits": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/AddApplicationUnits"
            },
            "Result": {
              "$ref": "#/definitions/AddApplicationUnitsResults"
            }
          }
        },
        "CharmRelations": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ApplicationCharmRelations"
            },
            "Result": {
              "$ref": "#/definitions/ApplicationCharmRelationsResults"
            }
          }
        },
        "Deploy": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ApplicationsDeploy"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "Destroy": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ApplicationDestroy"
            }
          }
        },
        "DestroyRelation": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/DestroyRelation"
            }
          }
        },
        "DestroyUnits": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/DestroyApplicationUnits"
            }
          }
        },
        "Expose": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ApplicationExpose"
            }
          }
        },
        "Get": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ApplicationGet"
            },
            "Result": {
              "$ref": "#/definitions/ApplicationGetResults"
            }
          }
        },
        "GetCharmURL": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ApplicationGet"
            },
            "Result": {
              "$ref": "#/definitions/StringResult"
            }
          }
        },
        "GetConstraints": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/GetApplicationConstraints"
            },
            "Result": {
              "$ref": "#/definitions/GetConstraintsResults"
            }
          }
        },
        "Set": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ApplicationSet"
            }
          }
        },
        "SetCharm": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ApplicationSetCharm"
            }
          }
        },
        "SetConstraints": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetConstraints"
            }
          }
        },
        "SetMetricCredentials": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ApplicationMetricCredentials"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "Unexpose": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ApplicationUnexpose"
            }
          }
        },
        "Unset": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ApplicationUnset"
            }
          }
        },
        "Update": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ApplicationUpdate"
            }
          }
        }
      },
      "definitions": {
        "AddApplicationUnits": {
          "type": "object",
          "properties": {
            "application": {
              "type": "string"
            },
            "num-units": {
              "type": "integer"
            },
            "placement": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Placement"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "application",
            "num-units",
            "placement"
          ]
        },
        "AddApplicationUnitsResults": {
          "type": "object",
          "properties": {
            "units": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "units"
          ]
        },
        "AddRelation": {
          "type": "object",
          "properties": {
            "endpoints": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "endpoints"
          ]
        },
        "AddRelationResults": {
          "type": "object",
          "properties": {
            "endpoints": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/CharmRelation"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "endpoints"
          ]
        },
        "ApplicationCharmRelations": {
          "type": "object",
          "properties": {
            "application": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "application"
          ]
        },
        "ApplicationCharmRelationsResults": {
          "type": "object",
          "properties": {
            "charm-relations": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "charm-relations"
          ]
        },
        "ApplicationDeploy": {
          "type": "object",
          "properties": {
            "application": {
              "type": "string"
            },
            "channel": {
              "type": "string"
            },
            "charm-url": {
              "type": "string"
            },
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "config-yaml": {
              "type": "string"
            },
            "constraints": {
              "$ref": "#/definitions/Value"
            },
            "endpoint-bindings": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "num-units": {
              "type": "integer"
            },
            "placement": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Placement"
              }
            },
            "resources": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "series": {
              "type": "string"
            },
            "storage": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/Constraints"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "application",
            "series",
            "charm-url",
            "channel",
            "num-units",
            "config-yaml",
            "constraints"
          ]
        },
        "ApplicationDestroy": {
          "type": "object",
          "properties": {
            "application": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "application"
          ]
        },
        "ApplicationExpose": {
          "type": "object",
          "properties": {
            "application": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "application"
          ]
        },
        "ApplicationGet": {
          "type": "object",
          "properties": {
            "application": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "application"
          ]
        },
        "ApplicationGetResults": {
          "type": "object",
          "properties": {
            "application": {
              "type": "string"
            },
            "charm": {
              "type": "string"
            },
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "constraints": {
              "$ref": "#/definitions/Value"
            },
            "series": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "application",
            "charm",
            "config",
            "constraints",
            "series"
          ]
        },
        "ApplicationMetricCredential": {
          "type": "object",
          "properties": {
            "application": {
              "type": "string"
            },
            "metrics-credentials": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "application",
            "metrics-credentials"
          ]
        },
        "ApplicationMetricCredentials": {
          "type": "object",
          "properties": {
            "creds": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ApplicationMetricCredential"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "creds"
          ]
        },
        "ApplicationSet": {
          "type": "object",
          "properties": {
            "application": {
              "type": "string"
            },
            "options": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "application",
            "options"
          ]
        },
        "ApplicationSetCharm": {
          "type": "object",
          "properties": {
            "application": {
              "type": "string"
            },
            "channel": {
              "type": "string"
            },
            "charm-url": {
              "type": "string"
            },
            "config-settings": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "config-settings-yaml": {
              "type": "string"
            },
            "force-series": {
              "type": "boolean"
            },
            "force-units": {
              "type": "boolean"
            },
            "resource-ids": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "storage-constraints": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/StorageConstraints"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "application",
            "charm-url",
            "channel",
            "force-units",
            "force-series"
          ]
        },
        "ApplicationUnexpose": {
          "type": "object",
          "properties": {
            "application": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "application"
          ]
        },
        "ApplicationUnset": {
          "type": "object",
          "properties": {
            "application": {
              "type": "string"
            },
            "options": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "application",
            "options"
          ]
        },
        "ApplicationUpdate": {
          "type": "object",
          "properties": {
            "application": {
              "type": "string"
            },
            "charm-url": {
              "type": "string"
            },
            "constraints": {
              "$ref": "#/definitions/Value"
            },
            "force-charm-url": {
              "type": "boolean"
            },
            "force-series": {
              "type": "boolean"
            },
            "min-units": {
              "type": "integer"
            },
            "settings": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "settings-yaml": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "application",
            "charm-url",
            "force-charm-url",
            "force-series",
            "settings-yaml"
          ]
        },
        "ApplicationsDeploy": {
          "type": "object",
          "properties": {
            "applications": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ApplicationDeploy"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "applications"
          ]
        },
        "CharmRelation": {
          "type": "object",
          "properties": {
            "interface": {
              "type": "string"
            },
            "limit": {
              "type": "integer"
            },
            "name": {
              "type": "string"
            },
            "optional": {
              "type": "boolean"
            },
            "role": {
              "type": "string"
            },
            "scope": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "role",
            "interface",
            "optional",
            "limit",
            "scope"
          ]
        },
        "Constraints": {
          "type": "object",
          "properties": {
            "Count": {
              "type": "integer"
            },
            "Pool": {
              "type": "string"
            },
            "Size": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "Pool",
            "Size",
            "Count"
          ]
        },
        "DestroyApplicationUnits": {
          "type": "object",
          "properties": {
            "unit-names": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "unit-names"
          ]
        },
        "DestroyRelation": {
          "type": "object",
          "properties": {
            "endpoints": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "endpoints"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "GetApplicationConstraints": {
          "type": "object",
          "properties": {
            "application": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "application"
          ]
        },
        "GetConstraintsResults": {
          "type": "object",
          "properties": {
            "constraints": {
              "$ref": "#/definitions/Value"
            }
          },
          "additionalProperties": false,
          "required": [
            "constraints"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "Placement": {
          "type": "object",
          "properties": {
            "directive": {
              "type": "string"
            },
            "scope": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "scope",
            "directive"
          ]
        },
        "SetConstraints": {
          "type": "object",
          "properties": {
            "application": {
              "type": "string"
            },
            "constraints": {
              "$ref": "#/definitions/Value"
            }
          },
          "additionalProperties": false,
          "required": [
            "application",
            "constraints"
          ]
        },
        "StorageConstraints": {
          "type": "object",
          "properties": {
            "count": {
              "type": "integer"
            },
            "pool": {
              "type": "string"
            },
            "size": {
              "type": "integer"
            }
          },
          "additionalProperties": false
        },
        "StringResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "Value": {
          "type": "object",
          "properties": {
            "arch": {
              "type": "string"
            },
            "container": {
              "type": "string"
            },
            "cores": {
              "type": "integer"
            },
            "cpu-power": {
              "type": "integer"
            },
            "instance-type": {
              "type": "string"
            },
            "mem": {
              "type": "integer"
            },
            "root-disk": {
              "type": "integer"
            },
            "spaces": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "virt-type": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "ApplicationRelationsWatcher",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "Next": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ApplicationRelationsWatchResult"
            }
          }
        },
        "Stop": {
          "type": "object"
        }
      },
      "definitions": {
        "ApplicationRelationsChange": {
          "type": "object",
          "properties": {
            "changed": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/RelationChange"
              }
            },
            "removed": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            }
          },
          "additionalProperties": false
        },
        "ApplicationRelationsWatchResult": {
          "type": "object",
          "properties": {
            "ApplicationRelationsWatcherId": {
              "type": "string"
            },
            "changes": {
              "$ref": "#/definitions/ApplicationRelationsChange"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "ApplicationRelationsWatcherId"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "RelationChange": {
          "type": "object",
          "properties": {
            "changedunits": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/RelationUnitChange"
                }
              }
            },
            "departedunits": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "id": {
              "type": "integer"
            },
            "life": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "id",
            "life"
          ]
        },
        "RelationUnitChange": {
          "type": "object",
          "properties": {
            "settings": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "ApplicationScaler",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "Rescale": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "Watch": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StringsWatchResult"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "StringsWatchResult": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "watcher-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "watcher-id"
          ]
        }
      }
    }
  },
  {
    "Name": "Backups",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "Create": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/BackupsCreateArgs"
            },
            "Result": {
              "$ref": "#/definitions/BackupsMetadataResult"
            }
          }
        },
        "FinishRestore": {
          "type": "object"
        },
        "Info": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/BackupsInfoArgs"
            },
            "Result": {
              "$ref": "#/definitions/BackupsMetadataResult"
            }
          }
        },
        "List": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/BackupsListArgs"
            },
            "Result": {
              "$ref": "#/definitions/BackupsListResult"
            }
          }
        },
        "PrepareRestore": {
          "type": "object"
        },
        "Remove": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/BackupsRemoveArgs"
            }
          }
        },
        "Restore": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/RestoreArgs"
            }
          }
        }
      },
      "definitions": {
        "BackupsCreateArgs": {
          "type": "object",
          "properties": {
            "notes": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "notes"
          ]
        },
        "BackupsInfoArgs": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "id"
          ]
        },
        "BackupsListArgs": {
          "type": "object",
          "additionalProperties": false
        },
        "BackupsListResult": {
          "type": "object",
          "properties": {
            "list": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/BackupsMetadataResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "list"
          ]
        },
        "BackupsMetadataResult": {
          "type": "object",
          "properties": {
            "ca-cert": {
              "type": "string"
            },
            "ca-private-key": {
              "type": "string"
            },
            "checksum": {
              "type": "string"
            },
            "checksum-format": {
              "type": "string"
            },
            "finished": {
              "type": "string",
              "format": "date-time"
            },
            "hostname": {
              "type": "string"
            },
            "id": {
              "type": "string"
            },
            "machine": {
              "type": "string"
            },
            "model": {
              "type": "string"
            },
            "notes": {
              "type": "string"
            },
            "series": {
              "type": "string"
            },
            "size": {
              "type": "integer"
            },
            "started": {
              "type": "string",
              "format": "date-time"
            },
            "stored": {
              "type": "string",
              "format": "date-time"
            },
            "version": {
              "$ref": "#/definitions/Number"
            }
          },
          "additionalProperties": false,
          "required": [
            "id",
            "checksum",
            "checksum-format",
            "size",
            "stored",
            "started",
            "finished",
            "notes",
            "model",
            "machine",
            "hostname",
            "version",
            "series",
            "ca-cert",
            "ca-private-key"
          ]
        },
        "BackupsRemoveArgs": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "id"
          ]
        },
        "Number": {
          "type": "object",
          "properties": {
            "Build": {
              "type": "integer"
            },
            "Major": {
              "type": "integer"
            },
            "Minor": {
              "type": "integer"
            },
            "Patch": {
              "type": "integer"
            },
            "Tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "Major",
            "Minor",
            "Tag",
            "Patch",
            "Build"
          ]
        },
        "RestoreArgs": {
          "type": "object",
          "properties": {
            "backup-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "backup-id"
          ]
        }
      }
    }
  },
  {
    "Name": "Block",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "List": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/BlockResults"
            }
          }
        },
        "SwitchBlockOff": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/BlockSwitchParams"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResult"
            }
          }
        },
        "SwitchBlockOn": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/BlockSwitchParams"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResult"
            }
          }
        }
      },
      "definitions": {
        "Block": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            },
            "type": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "id",
            "tag",
            "type"
          ]
        },
        "BlockResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/Block"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "BlockResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/BlockResult"
              }
            }
          },
          "additionalProperties": false
        },
        "BlockSwitchParams": {
          "type": "object",
          "properties": {
            "message": {
              "type": "string"
            },
            "type": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "type"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "Bundle",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "GetChanges": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/BundleChangesParams"
            },
            "Result": {
              "$ref": "#/definitions/BundleChangesResults"
            }
          }
        }
      },
      "definitions": {
        "BundleChange": {
          "type": "object",
          "properties": {
            "args": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": true
              }
            },
            "id": {
              "type": "string"
            },
            "method": {
              "type": "string"
            },
            "requires": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "id",
            "method",
            "args",
            "requires"
          ]
        },
        "BundleChangesParams": {
          "type": "object",
          "properties": {
            "yaml": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "yaml"
          ]
        },
        "BundleChangesResults": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/BundleChange"
              }
            },
            "errors": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "CharmRevisionUpdater",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "UpdateLatestRevisions": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ErrorResult"
            }
          }
        }
      },
      "definitions": {
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "Charms",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "CharmInfo": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/CharmURL"
            },
            "Result": {
              "$ref": "#/definitions/CharmInfo"
            }
          }
        },
        "IsMetered": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/CharmURL"
            },
            "Result": {
              "$ref": "#/definitions/IsMeteredResult"
            }
          }
        },
        "List": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/CharmsList"
            },
            "Result": {
              "$ref": "#/definitions/CharmsListResult"
            }
          }
        }
      },
      "definitions": {
        "CharmActionSpec": {
          "type": "object",
          "properties": {
            "description": {
              "type": "string"
            },
            "params": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "description",
            "params"
          ]
        },
        "CharmActions": {
          "type": "object",
          "properties": {
            "specs": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/CharmActionSpec"
                }
              }
            }
          },
          "additionalProperties": false
        },
        "CharmInfo": {
          "type": "object",
          "properties": {
            "actions": {
              "$ref": "#/definitions/CharmActions"
            },
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/CharmOption"
                }
              }
            },
            "meta": {
              "$ref": "#/definitions/CharmMeta"
            },
            "metrics": {
              "$ref": "#/definitions/CharmMetrics"
            },
            "revision": {
              "type": "integer"
            },
            "url": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "revision",
            "url",
            "config"
          ]
        },
        "CharmMeta": {
          "type": "object",
          "properties": {
            "categories": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": {
              "type": "string"
            },
            "extra-bindings": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "min-juju-version": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "payload-classes": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/CharmPayloadClass"
                }
              }
            },
            "peers": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/CharmRelation"
                }
              }
            },
            "provides": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/CharmRelation"
                }
              }
            },
            "requires": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/CharmRelation"
                }
              }
            },
            "resources": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/CharmResourceMeta"
                }
              }
            },
            "series": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "storage": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/CharmStorage"
                }
              }
            },
            "subordinate": {
              "type": "boolean"
            },
            "summary": {
              "type": "string"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "terms": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "summary",
            "description",
            "subordinate"
          ]
        },
        "CharmMetric": {
          "type": "object",
          "properties": {
            "description": {
              "type": "string"
            },
            "type": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "type",
            "description"
          ]
        },
        "CharmMetrics": {
          "type": "object",
          "properties": {
            "metrics": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/CharmMetric"
                }
              }
            },
            "plan": {
              "$ref": "#/definitions/CharmPlan"
            }
          },
          "additionalProperties": false,
          "required": [
            "metrics",
            "plan"
          ]
        },
        "CharmOption": {
          "type": "object",
          "properties": {
            "default": {
              "type": "object",
              "additionalProperties": true
            },
            "description": {
              "type": "string"
            },
            "type": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "type"
          ]
        },
        "CharmPayloadClass": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "type": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "type"
          ]
        },
        "CharmPlan": {
          "type": "object",
          "properties": {
            "required": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "required"
          ]
        },
        "CharmRelation": {
          "type": "object",
          "properties": {
            "interface": {
              "type": "string"
            },
            "limit": {
              "type": "integer"
            },
            "name": {
              "type": "string"
            },
            "optional": {
              "type": "boolean"
            },
            "role": {
              "type": "string"
            },
            "scope": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "role",
            "interface",
            "optional",
            "limit",
            "scope"
          ]
        },
        "CharmResourceMeta": {
          "type": "object",
          "properties": {
            "description": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "path": {
              "type": "string"
            },
            "type": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "type",
            "path",
            "description"
          ]
        },
        "CharmStorage": {
          "type": "object",
          "properties": {
            "count-max": {
              "type": "integer"
            },
            "count-min": {
              "type": "integer"
            },
            "description": {
              "type": "string"
            },
            "location": {
              "type": "string"
            },
            "minimum-size": {
              "type": "integer"
            },
            "name": {
              "type": "string"
            },
            "properties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "read-only": {
              "type": "boolean"
            },
            "shared": {
              "type": "boolean"
            },
            "type": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "description",
            "type",
            "shared",
            "read-only",
            "count-min",
            "count-max",
            "minimum-size"
          ]
        },
        "CharmURL": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "url"
          ]
        },
        "CharmsList": {
          "type": "object",
          "properties": {
            "names": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "names"
          ]
        },
        "CharmsListResult": {
          "type": "object",
          "properties": {
            "charm-urls": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "charm-urls"
          ]
        },
        "IsMeteredResult": {
          "type": "object",
          "properties": {
            "metered": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "metered"
          ]
        }
      }
    }
  },
  {
    "Name": "Cleaner",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "Cleanup": {
          "type": "object"
        },
        "WatchCleanups": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/NotifyWatchResult"
            }
          }
        }
      },
      "definitions": {
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        }
      }
    }
  },
  {
    "Name": "Client",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "APIHostPorts": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/APIHostPortsResult"
            }
          }
        },
        "AbortCurrentUpgrade": {
          "type": "object"
        },
        "AddCharm": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/AddCharm"
            }
          }
        },
        "AddCharmWithAuthorization": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/AddCharmWithAuthorization"
            }
          }
        },
        "AddMachines": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/AddMachines"
            },
            "Result": {
              "$ref": "#/definitions/AddMachinesResults"
            }
          }
        },
        "AddMachinesV2": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/AddMachines"
            },
            "Result": {
              "$ref": "#/definitions/AddMachinesResults"
            }
          }
        },
        "AgentVersion": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/AgentVersionResult"
            }
          }
        },
        "DestroyMachines": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/DestroyMachines"
            }
          }
        },
        "FindTools": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/FindToolsParams"
            },
            "Result": {
              "$ref": "#/definitions/FindToolsResult"
            }
          }
        },
        "FullStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/StatusParams"
            },
            "Result": {
              "$ref": "#/definitions/FullStatus"
            }
          }
        },
        "GetBundleChanges": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/BundleChangesParams"
            },
            "Result": {
              "$ref": "#/definitions/BundleChangesResults"
            }
          }
        },
        "GetModelConstraints": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/GetConstraintsResults"
            }
          }
        },
        "InjectMachines": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/AddMachines"
            },
            "Result": {
              "$ref": "#/definitions/AddMachinesResults"
            }
          }
        },
        "ModelGet": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ModelConfigResults"
            }
          }
        },
        "ModelInfo": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ModelInfo"
            }
          }
        },
        "ModelSet": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ModelSet"
            }
          }
        },
        "ModelUnset": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ModelUnset"
            }
          }
        },
        "ModelUserInfo": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ModelUserInfoResults"
            }
          }
        },
        "PrivateAddress": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/PrivateAddress"
            },
            "Result": {
              "$ref": "#/definitions/PrivateAddressResults"
            }
          }
        },
        "ProvisioningScript": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ProvisioningScriptParams"
            },
            "Result": {
              "$ref": "#/definitions/ProvisioningScriptResult"
            }
          }
        },
        "PublicAddress": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/PublicAddress"
            },
            "Result": {
              "$ref": "#/definitions/PublicAddressResults"
            }
          }
        },
        "ResolveCharms": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ResolveCharms"
            },
            "Result": {
              "$ref": "#/definitions/ResolveCharmResults"
            }
          }
        },
        "Resolved": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Resolved"
            }
          }
        },
        "RetryProvisioning": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetModelAgentVersion": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetModelAgentVersion"
            }
          }
        },
        "SetModelConstraints": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetConstraints"
            }
          }
        },
        "StatusHistory": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/StatusHistoryRequests"
            },
            "Result": {
              "$ref": "#/definitions/StatusHistoryResults"
            }
          }
        },
        "WatchAll": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/AllWatcherId"
            }
          }
        }
      },
      "definitions": {
        "APIHostPortsResult": {
          "type": "object",
          "properties": {
            "servers": {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/HostPort"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "servers"
          ]
        },
        "AddCharm": {
          "type": "object",
          "properties": {
            "channel": {
              "type": "string"
            },
            "url": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "url",
            "channel"
          ]
        },
        "AddCharmWithAuthorization": {
          "type": "object",
          "properties": {
            "channel": {
              "type": "string"
            },
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "url": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "url",
            "channel",
            "macaroon"
          ]
        },
        "AddMachineParams": {
          "type": "object",
          "properties": {
            "addresses": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Address"
              }
            },
            "constraints": {
              "$ref": "#/definitions/Value"
            },
            "container-type": {
              "type": "string"
            },
            "disks": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Constraints"
              }
            },
            "hardware-characteristics": {
              "$ref": "#/definitions/HardwareCharacteristics"
            },
            "instance-id": {
              "type": "string"
            },
            "jobs": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "nonce": {
              "type": "string"
            },
            "parent-id": {
              "type": "string"
            },
            "placement": {
              "$ref": "#/definitions/Placement"
            },
            "series": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "series",
            "constraints",
            "jobs",
            "parent-id",
            "container-type",
            "instance-id",
            "nonce",
            "hardware-characteristics",
            "addresses"
          ]
        },
        "AddMachines": {
          "type": "object",
          "properties": {
            "params": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AddMachineParams"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "params"
          ]
        },
        "AddMachinesResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "machine": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "machine"
          ]
        },
        "AddMachinesResults": {
          "type": "object",
          "properties": {
            "machines": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AddMachinesResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "machines"
          ]
        },
        "Address": {
          "type": "object",
          "properties": {
            "scope": {
              "type": "string"
            },
            "space-name": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "value",
            "type",
            "scope"
          ]
        },
        "AgentVersionResult": {
          "type": "object",
          "properties": {
            "version": {
              "$ref": "#/definitions/Number"
            }
          },
          "additionalProperties": false,
          "required": [
            "version"
          ]
        },
        "AllWatcherId": {
          "type": "object",
          "properties": {
            "watcher-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "watcher-id"
          ]
        },
        "ApplicationStatus": {
          "type": "object",
          "properties": {
            "can-upgrade-to": {
              "type": "string"
            },
            "charm": {
              "type": "string"
            },
            "err": {
              "type": "object",
              "additionalProperties": true
            },
            "exposed": {
              "type": "boolean"
            },
            "life": {
              "type": "string"
            },
            "meter-statuses": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/MeterStatus"
                }
              }
            },
            "relations": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            },
            "series": {
              "type": "string"
            },
            "status": {
              "$ref": "#/definitions/DetailedStatus"
            },
            "subordinate-to": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "units": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/UnitStatus"
                }
              }
            },
            "workload-version": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "charm",
            "series",
            "exposed",
            "life",
            "relations",
            "can-upgrade-to",
            "subordinate-to",
            "units",
            "meter-statuses",
            "status",
            "workload-version"
          ]
        },
        "Binary": {
          "type": "object",
          "properties": {
            "Arch": {
              "type": "string"
            },
            "Number": {
              "$ref": "#/definitions/Number"
            },
            "Series": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "Number",
            "Series",
            "Arch"
          ]
        },
        "BundleChange": {
          "type": "object",
          "properties": {
            "args": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": true
              }
            },
            "id": {
              "type": "string"
            },
            "method": {
              "type": "string"
            },
            "requires": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "id",
            "method",
            "args",
            "requires"
          ]
        },
        "BundleChangesParams": {
          "type": "object",
          "properties": {
            "yaml": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "yaml"
          ]
        },
        "BundleChangesResults": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/BundleChange"
              }
            },
            "errors": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "ConfigValue": {
          "type": "object",
          "properties": {
            "source": {
              "type": "string"
            },
            "value": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "additionalProperties": false,
          "required": [
            "value",
            "source"
          ]
        },
        "Constraints": {
          "type": "object",
          "properties": {
            "Count": {
              "type": "integer"
            },
            "Pool": {
              "type": "string"
            },
            "Size": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "Pool",
            "Size",
            "Count"
          ]
        },
        "DestroyMachines": {
          "type": "object",
          "properties": {
            "force": {
              "type": "boolean"
            },
            "machine-names": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "machine-names",
            "force"
          ]
        },
        "DetailedStatus": {
          "type": "object",
          "properties": {
            "data": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "err": {
              "type": "object",
              "additionalProperties": true
            },
            "info": {
              "type": "string"
            },
            "kind": {
              "type": "string"
            },
            "life": {
              "type": "string"
            },
            "since": {
              "type": "string",
              "format": "date-time"
            },
            "status": {
              "type": "string"
            },
            "version": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "status",
            "info",
            "data",
            "since",
            "kind",
            "version",
            "life"
          ]
        },
        "EndpointStatus": {
          "type": "object",
          "properties": {
            "application": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "role": {
              "type": "string"
            },
            "subordinate": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "application",
            "name",
            "role",
            "subordinate"
          ]
        },
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "EntityStatus": {
          "type": "object",
          "properties": {
            "data": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "info": {
              "type": "string"
            },
            "since": {
              "type": "string",
              "format": "date-time"
            },
            "status": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "status",
            "info",
            "since"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "FindToolsParams": {
          "type": "object",
          "properties": {
            "arch": {
              "type": "string"
            },
            "major": {
              "type": "integer"
            },
            "minor": {
              "type": "integer"
            },
            "number": {
              "$ref": "#/definitions/Number"
            },
            "series": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "number",
            "major",
            "minor",
            "arch",
            "series"
          ]
        },
        "FindToolsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "list": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Tools"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "list"
          ]
        },
        "FullStatus": {
          "type": "object",
          "properties": {
            "applications": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/ApplicationStatus"
                }
              }
            },
            "machines": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/MachineStatus"
                }
              }
            },
            "model": {
              "$ref": "#/definitions/ModelStatusInfo"
            },
            "relations": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/RelationStatus"
              }
            },
            "remote-applications": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/RemoteApplicationStatus"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "model",
            "machines",
            "applications",
            "remote-applications",
            "relations"
          ]
        },
        "GetConstraintsResults": {
          "type": "object",
          "properties": {
            "constraints": {
              "$ref": "#/definitions/Value"
            }
          },
          "additionalProperties": false,
          "required": [
            "constraints"
          ]
        },
        "HardwareCharacteristics": {
          "type": "object",
          "properties": {
            "arch": {
              "type": "string"
            },
            "availability-zone": {
              "type": "string"
            },
            "cpu-cores": {
              "type": "integer"
            },
            "cpu-power": {
              "type": "integer"
            },
            "mem": {
              "type": "integer"
            },
            "root-disk": {
              "type": "integer"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "History": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "statuses": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/DetailedStatus"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "statuses"
          ]
        },
        "HostPort": {
          "type": "object",
          "properties": {
            "Address": {
              "$ref": "#/definitions/Address"
            },
            "port": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "Address",
            "port"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "MachineHardware": {
          "type": "object",
          "properties": {
            "arch": {
              "type": "string"
            },
            "availability-zone": {
              "type": "string"
            },
            "cores": {
              "type": "integer"
            },
            "cpu-power": {
              "type": "integer"
            },
            "mem": {
              "type": "integer"
            },
            "root-disk": {
              "type": "integer"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "MachineStatus": {
          "type": "object",
          "properties": {
            "agent-status": {
              "$ref": "#/definitions/DetailedStatus"
            },
            "containers": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/MachineStatus"
                }
              }
            },
            "dns-name": {
              "type": "string"
            },
            "hardware": {
              "type": "string"
            },
            "has-vote": {
              "type": "boolean"
            },
            "id": {
              "type": "string"
            },
            "instance-id": {
              "type": "string"
            },
            "instance-status": {
              "$ref": "#/definitions/DetailedStatus"
            },
            "ip-addresses": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "jobs": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "series": {
              "type": "string"
            },
            "wants-vote": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "agent-status",
            "instance-status",
            "dns-name",
            "ip-addresses",
            "instance-id",
            "series",
            "id",
            "containers",
            "hardware",
            "jobs",
            "has-vote",
            "wants-vote"
          ]
        },
        "MeterStatus": {
          "type": "object",
          "properties": {
            "color": {
              "type": "string"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "color",
            "message"
          ]
        },
        "ModelConfigResults": {
          "type": "object",
          "properties": {
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/ConfigValue"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "ModelInfo": {
          "type": "object",
          "properties": {
            "cloud-credential-tag": {
              "type": "string"
            },
            "cloud-region": {
              "type": "string"
            },
            "cloud-tag": {
              "type": "string"
            },
            "controller-uuid": {
              "type": "string"
            },
            "default-series": {
              "type": "string"
            },
            "life": {
              "type": "string"
            },
            "machines": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ModelMachineInfo"
              }
            },
            "name": {
              "type": "string"
            },
            "owner-tag": {
              "type": "string"
            },
            "provider-type": {
              "type": "string"
            },
            "status": {
              "$ref": "#/definitions/EntityStatus"
            },
            "users": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ModelUserInfo"
              }
            },
            "uuid": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "uuid",
            "controller-uuid",
            "provider-type",
            "default-series",
            "cloud-tag",
            "owner-tag",
            "life",
            "status",
            "users",
            "machines"
          ]
        },
        "ModelMachineInfo": {
          "type": "object",
          "properties": {
            "hardware": {
              "$ref": "#/definitions/MachineHardware"
            },
            "has-vote": {
              "type": "boolean"
            },
            "id": {
              "type": "string"
            },
            "instance-id": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "wants-vote": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "id"
          ]
        },
        "ModelSet": {
          "type": "object",
          "properties": {
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "ModelStatusInfo": {
          "type": "object",
          "properties": {
            "available-version": {
              "type": "string"
            },
            "cloud-tag": {
              "type": "string"
            },
            "migration": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "region": {
              "type": "string"
            },
            "version": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "cloud-tag",
            "version",
            "available-version"
          ]
        },
        "ModelUnset": {
          "type": "object",
          "properties": {
            "keys": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "keys"
          ]
        },
        "ModelUserInfo": {
          "type": "object",
          "properties": {
            "access": {
              "type": "string"
            },
            "display-name": {
              "type": "string"
            },
            "last-connection": {
              "type": "string",
              "format": "date-time"
            },
            "user": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "user",
            "display-name",
            "last-connection",
            "access"
          ]
        },
        "ModelUserInfoResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/ModelUserInfo"
            }
          },
          "additionalProperties": false
        },
        "ModelUserInfoResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ModelUserInfoResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Number": {
          "type": "object",
          "properties": {
            "Build": {
              "type": "integer"
            },
            "Major": {
              "type": "integer"
            },
            "Minor": {
              "type": "integer"
            },
            "Patch": {
              "type": "integer"
            },
            "Tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "Major",
            "Minor",
            "Tag",
            "Patch",
            "Build"
          ]
        },
        "Placement": {
          "type": "object",
          "properties": {
            "directive": {
              "type": "string"
            },
            "scope": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "scope",
            "directive"
          ]
        },
        "PrivateAddress": {
          "type": "object",
          "properties": {
            "target": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "target"
          ]
        },
        "PrivateAddressResults": {
          "type": "object",
          "properties": {
            "private-address": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "private-address"
          ]
        },
        "ProvisioningScriptParams": {
          "type": "object",
          "properties": {
            "data-dir": {
              "type": "string"
            },
            "disable-package-commands": {
              "type": "boolean"
            },
            "machine-id": {
              "type": "string"
            },
            "nonce": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "machine-id",
            "nonce",
            "data-dir",
            "disable-package-commands"
          ]
        },
        "ProvisioningScriptResult": {
          "type": "object",
          "properties": {
            "script": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "script"
          ]
        },
        "PublicAddress": {
          "type": "object",
          "properties": {
            "target": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "target"
          ]
        },
        "PublicAddressResults": {
          "type": "object",
          "properties": {
            "public-address": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "public-address"
          ]
        },
        "RelationStatus": {
          "type": "object",
          "properties": {
            "endpoints": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EndpointStatus"
              }
            },
            "id": {
              "type": "integer"
            },
            "interface": {
              "type": "string"
            },
            "key": {
              "type": "string"
            },
            "scope": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "id",
            "key",
            "interface",
            "scope",
            "endpoints"
          ]
        },
        "RemoteApplicationStatus": {
          "type": "object",
          "properties": {
            "application-name": {
              "type": "string"
            },
            "application-url": {
              "type": "string"
            },
            "endpoints": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/RemoteEndpoint"
              }
            },
            "err": {
              "type": "object",
              "additionalProperties": true
            },
            "life": {
              "type": "string"
            },
            "relations": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            },
            "status": {
              "$ref": "#/definitions/DetailedStatus"
            }
          },
          "additionalProperties": false,
          "required": [
            "application-url",
            "application-name",
            "endpoints",
            "life",
            "relations",
            "status"
          ]
        },
        "RemoteEndpoint": {
          "type": "object",
          "properties": {
            "interface": {
              "type": "string"
            },
            "limit": {
              "type": "integer"
            },
            "name": {
              "type": "string"
            },
            "role": {
              "type": "string"
            },
            "scope": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "role",
            "interface",
            "limit",
            "scope"
          ]
        },
        "ResolveCharmResult": {
          "type": "object",
          "properties": {
            "error": {
              "type": "string"
            },
            "url": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ResolveCharmResults": {
          "type": "object",
          "properties": {
            "urls": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ResolveCharmResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "urls"
          ]
        },
        "ResolveCharms": {
          "type": "object",
          "properties": {
            "references": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "references"
          ]
        },
        "Resolved": {
          "type": "object",
          "properties": {
            "retry": {
              "type": "boolean"
            },
            "unit-name": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "unit-name",
            "retry"
          ]
        },
        "SetConstraints": {
          "type": "object",
          "properties": {
            "application": {
              "type": "string"
            },
            "constraints": {
              "$ref": "#/definitions/Value"
            }
          },
          "additionalProperties": false,
          "required": [
            "application",
            "constraints"
          ]
        },
        "SetModelAgentVersion": {
          "type": "object",
          "properties": {
            "version": {
              "$ref": "#/definitions/Number"
            }
          },
          "additionalProperties": false,
          "required": [
            "version"
          ]
        },
        "StatusHistoryFilter": {
          "type": "object",
          "properties": {
            "date": {
              "type": "string",
              "format": "date-time"
            },
            "delta": {
              "type": "integer"
            },
            "size": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "size",
            "date",
            "delta"
          ]
        },
        "StatusHistoryRequest": {
          "type": "object",
          "properties": {
            "filter": {
              "$ref": "#/definitions/StatusHistoryFilter"
            },
            "historyKind": {
              "type": "string"
            },
            "size": {
              "type": "integer"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "historyKind",
            "size",
            "filter",
            "tag"
          ]
        },
        "StatusHistoryRequests": {
          "type": "object",
          "properties": {
            "requests": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StatusHistoryRequest"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "requests"
          ]
        },
        "StatusHistoryResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "history": {
              "$ref": "#/definitions/History"
            }
          },
          "additionalProperties": false,
          "required": [
            "history"
          ]
        },
        "StatusHistoryResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StatusHistoryResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "StatusParams": {
          "type": "object",
          "properties": {
            "patterns": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "patterns"
          ]
        },
        "Tools": {
          "type": "object",
          "properties": {
            "sha256": {
              "type": "string"
            },
            "size": {
              "type": "integer"
            },
            "url": {
              "type": "string"
            },
            "version": {
              "$ref": "#/definitions/Binary"
            }
          },
          "additionalProperties": false,
          "required": [
            "version",
            "url",
            "size"
          ]
        },
        "UnitStatus": {
          "type": "object",
          "properties": {
            "agent-status": {
              "$ref": "#/definitions/DetailedStatus"
            },
            "charm": {
              "type": "string"
            },
            "leader": {
              "type": "boolean"
            },
            "machine": {
              "type": "string"
            },
            "opened-ports": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "public-address": {
              "type": "string"
            },
            "subordinates": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/UnitStatus"
                }
              }
            },
            "workload-status": {
              "$ref": "#/definitions/DetailedStatus"
            },
            "workload-version": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "agent-status",
            "workload-status",
            "workload-version",
            "machine",
            "opened-ports",
            "public-address",
            "charm",
            "subordinates"
          ]
        },
        "Value": {
          "type": "object",
          "properties": {
            "arch": {
              "type": "string"
            },
            "container": {
              "type": "string"
            },
            "cores": {
              "type": "integer"
            },
            "cpu-power": {
              "type": "integer"
            },
            "instance-type": {
              "type": "string"
            },
            "mem": {
              "type": "integer"
            },
            "root-disk": {
              "type": "integer"
            },
            "spaces": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "virt-type": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "Cloud",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "Cloud": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/CloudResults"
            }
          }
        },
        "Clouds": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/CloudsResult"
            }
          }
        },
        "Credential": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/CloudCredentialResults"
            }
          }
        },
        "DefaultCloud": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StringResult"
            }
          }
        },
        "RevokeCredentials": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "UpdateCredentials": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/UpdateCloudCredentials"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "UserCredentials": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/UserClouds"
            },
            "Result": {
              "$ref": "#/definitions/StringsResults"
            }
          }
        }
      },
      "definitions": {
        "Cloud": {
          "type": "object",
          "properties": {
            "auth-types": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "endpoint": {
              "type": "string"
            },
            "identity-endpoint": {
              "type": "string"
            },
            "regions": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CloudRegion"
              }
            },
            "storage-endpoint": {
              "type": "string"
            },
            "type": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "type"
          ]
        },
        "CloudCredential": {
          "type": "object",
          "properties": {
            "attrs": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "auth-type": {
              "type": "string"
            },
            "redacted": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "auth-type"
          ]
        },
        "CloudCredentialResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/CloudCredential"
            }
          },
          "additionalProperties": false
        },
        "CloudCredentialResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CloudCredentialResult"
              }
            }
          },
          "additionalProperties": false
        },
        "CloudRegion": {
          "type": "object",
          "properties": {
            "endpoint": {
              "type": "string"
            },
            "identity-endpoint": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "storage-endpoint": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name"
          ]
        },
        "CloudResult": {
          "type": "object",
          "properties": {
            "cloud": {
              "$ref": "#/definitions/Cloud"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "CloudResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CloudResult"
              }
            }
          },
          "additionalProperties": false
        },
        "CloudsResult": {
          "type": "object",
          "properties": {
            "clouds": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/Cloud"
                }
              }
            }
          },
          "additionalProperties": false
        },
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "StringResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "StringsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "StringsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StringsResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "UpdateCloudCredential": {
          "type": "object",
          "properties": {
            "credential": {
              "$ref": "#/definitions/CloudCredential"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "credential"
          ]
        },
        "UpdateCloudCredentials": {
          "type": "object",
          "properties": {
            "credentials": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UpdateCloudCredential"
              }
            }
          },
          "additionalProperties": false
        },
        "UserCloud": {
          "type": "object",
          "properties": {
            "cloud-tag": {
              "type": "string"
            },
            "user-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "user-tag",
            "cloud-tag"
          ]
        },
        "UserClouds": {
          "type": "object",
          "properties": {
            "user-clouds": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UserCloud"
              }
            }
          },
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "Controller",
    "Version": 3,
    "Schema": {
      "type": "object",
      "properties": {
        "AllModels": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/UserModelList"
            }
          }
        },
        "CloudSpec": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/CloudSpecResults"
            }
          }
        },
        "ControllerConfig": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ControllerConfigResult"
            }
          }
        },
        "DestroyController": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/DestroyControllerArgs"
            }
          }
        },
        "GetCloudSpec": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ModelTag"
            },
            "Result": {
              "$ref": "#/definitions/CloudSpecResult"
            }
          }
        },
        "GetControllerAccess": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/UserAccessResults"
            }
          }
        },
        "HostedModelConfigs": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/HostedModelConfigsResults"
            }
          }
        },
        "InitiateMigration": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/InitiateMigrationArgs"
            },
            "Result": {
              "$ref": "#/definitions/InitiateMigrationResults"
            }
          }
        },
        "ListBlockedModels": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ModelBlockInfoList"
            }
          }
        },
        "ModelConfig": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ModelConfigResults"
            }
          }
        },
        "ModelStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ModelStatusResults"
            }
          }
        },
        "ModifyControllerAccess": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ModifyControllerAccessRequest"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "RemoveBlocks": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/RemoveBlocksArgs"
            }
          }
        },
        "WatchAllModels": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/AllWatcherId"
            }
          }
        }
      },
      "definitions": {
        "AllWatcherId": {
          "type": "object",
          "properties": {
            "watcher-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "watcher-id"
          ]
        },
        "CloudCredential": {
          "type": "object",
          "properties": {
            "attrs": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "auth-type": {
              "type": "string"
            },
            "redacted": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "auth-type"
          ]
        },
        "CloudSpec": {
          "type": "object",
          "properties": {
            "credential": {
              "$ref": "#/definitions/CloudCredential"
            },
            "endpoint": {
              "type": "string"
            },
            "identity-endpoint": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "region": {
              "type": "string"
            },
            "storage-endpoint": {
              "type": "string"
            },
            "type": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "type",
            "name"
          ]
        },
        "CloudSpecResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/CloudSpec"
            }
          },
          "additionalProperties": false
        },
        "CloudSpecResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CloudSpecResult"
              }
            }
          },
          "additionalProperties": false
        },
        "ConfigValue": {
          "type": "object",
          "properties": {
            "source": {
              "type": "string"
            },
            "value": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "additionalProperties": false,
          "required": [
            "value",
            "source"
          ]
        },
        "ControllerConfigResult": {
          "type": "object",
          "properties": {
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "DestroyControllerArgs": {
          "type": "object",
          "properties": {
            "destroy-models": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "destroy-models"
          ]
        },
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "HostedModelConfig": {
          "type": "object",
          "properties": {
            "cloud-spec": {
              "$ref": "#/definitions/CloudSpec"
            },
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "name": {
              "type": "string"
            },
            "owner": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "owner"
          ]
        },
        "HostedModelConfigsResults": {
          "type": "object",
          "properties": {
            "models": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/HostedModelConfig"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "models"
          ]
        },
        "InitiateMigrationArgs": {
          "type": "object",
          "properties": {
            "specs": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MigrationSpec"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "specs"
          ]
        },
        "InitiateMigrationResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "migration-id": {
              "type": "string"
            },
            "model-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "model-tag",
            "migration-id"
          ]
        },
        "InitiateMigrationResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/InitiateMigrationResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "MachineHardware": {
          "type": "object",
          "properties": {
            "arch": {
              "type": "string"
            },
            "availability-zone": {
              "type": "string"
            },
            "cores": {
              "type": "integer"
            },
            "cpu-power": {
              "type": "integer"
            },
            "mem": {
              "type": "integer"
            },
            "root-disk": {
              "type": "integer"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "MigrationSpec": {
          "type": "object",
          "properties": {
            "external-control": {
              "type": "boolean"
            },
            "model-tag": {
              "type": "string"
            },
            "skip-initial-prechecks": {
              "type": "boolean"
            },
            "target-info": {
              "$ref": "#/definitions/MigrationTargetInfo"
            }
          },
          "additionalProperties": false,
          "required": [
            "model-tag",
            "target-info",
            "external-control",
            "skip-initial-prechecks"
          ]
        },
        "MigrationTargetInfo": {
          "type": "object",
          "properties": {
            "addrs": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "auth-tag": {
              "type": "string"
            },
            "ca-cert": {
              "type": "string"
            },
            "controller-tag": {
              "type": "string"
            },
            "macaroons": {
              "type": "string"
            },
            "password": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "controller-tag",
            "addrs",
            "ca-cert",
            "auth-tag"
          ]
        },
        "Model": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "owner-tag": {
              "type": "string"
            },
            "uuid": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "uuid",
            "owner-tag"
          ]
        },
        "ModelBlockInfo": {
          "type": "object",
          "properties": {
            "blocks": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "model-uuid": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "owner-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "model-uuid",
            "owner-tag",
            "blocks"
          ]
        },
        "ModelBlockInfoList": {
          "type": "object",
          "properties": {
            "models": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ModelBlockInfo"
              }
            }
          },
          "additionalProperties": false
        },
        "ModelConfigResults": {
          "type": "object",
          "properties": {
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/ConfigValue"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "ModelMachineInfo": {
          "type": "object",
          "properties": {
            "hardware": {
              "$ref": "#/definitions/MachineHardware"
            },
            "has-vote": {
              "type": "boolean"
            },
            "id": {
              "type": "string"
            },
            "instance-id": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "wants-vote": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "id"
          ]
        },
        "ModelStatus": {
          "type": "object",
          "properties": {
            "application-count": {
              "type": "integer"
            },
            "hosted-machine-count": {
              "type": "integer"
            },
            "life": {
              "type": "string"
            },
            "machines": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ModelMachineInfo"
              }
            },
            "model-tag": {
              "type": "string"
            },
            "owner-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "model-tag",
            "life",
            "hosted-machine-count",
            "application-count",
            "owner-tag"
          ]
        },
        "ModelStatusResults": {
          "type": "object",
          "properties": {
            "models": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ModelStatus"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "models"
          ]
        },
        "ModelTag": {
          "type": "object",
          "additionalProperties": false
        },
        "ModifyControllerAccess": {
          "type": "object",
          "properties": {
            "access": {
              "type": "string"
            },
            "action": {
              "type": "string"
            },
            "user-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "user-tag",
            "action",
            "access"
          ]
        },
        "ModifyControllerAccessRequest": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ModifyControllerAccess"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "changes"
          ]
        },
        "RemoveBlocksArgs": {
          "type": "object",
          "properties": {
            "all": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "all"
          ]
        },
        "UserAccess": {
          "type": "object",
          "properties": {
            "access": {
              "type": "string"
            },
            "user-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "user-tag",
            "access"
          ]
        },
        "UserAccessResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/UserAccess"
            }
          },
          "additionalProperties": false
        },
        "UserAccessResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UserAccessResult"
              }
            }
          },
          "additionalProperties": false
        },
        "UserModel": {
          "type": "object",
          "properties": {
            "last-connection": {
              "type": "string",
              "format": "date-time"
            },
            "model": {
              "$ref": "#/definitions/Model"
            }
          },
          "additionalProperties": false,
          "required": [
            "model",
            "last-connection"
          ]
        },
        "UserModelList": {
          "type": "object",
          "properties": {
            "user-models": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UserModel"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "user-models"
          ]
        }
      }
    }
  },
  {
    "Name": "Deployer",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "APIAddresses": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StringsResult"
            }
          }
        },
        "APIHostPorts": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/APIHostPortsResult"
            }
          }
        },
        "CACert": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/BytesResult"
            }
          }
        },
        "ConnectionInfo": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/DeployerConnectionValues"
            }
          }
        },
        "Life": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/LifeResults"
            }
          }
        },
        "ModelUUID": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StringResult"
            }
          }
        },
        "Remove": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetPasswords": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/EntityPasswords"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetStatus"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "StateAddresses": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StringsResult"
            }
          }
        },
        "UpdateStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetStatus"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "WatchAPIHostPorts": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/NotifyWatchResult"
            }
          }
        },
        "WatchUnits": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringsWatchResults"
            }
          }
        }
      },
      "definitions": {
        "APIHostPortsResult": {
          "type": "object",
          "properties": {
            "servers": {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/HostPort"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "servers"
          ]
        },
        "Address": {
          "type": "object",
          "properties": {
            "scope": {
              "type": "string"
            },
            "space-name": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "value",
            "type",
            "scope"
          ]
        },
        "BytesResult": {
          "type": "object",
          "properties": {
            "result": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "DeployerConnectionValues": {
          "type": "object",
          "properties": {
            "api-addresses": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "state-addresses": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "state-addresses",
            "api-addresses"
          ]
        },
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "EntityPassword": {
          "type": "object",
          "properties": {
            "password": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "password"
          ]
        },
        "EntityPasswords": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntityPassword"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "changes"
          ]
        },
        "EntityStatusArgs": {
          "type": "object",
          "properties": {
            "data": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "info": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "status",
            "info",
            "data"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "HostPort": {
          "type": "object",
          "properties": {
            "Address": {
              "$ref": "#/definitions/Address"
            },
            "port": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "Address",
            "port"
          ]
        },
        "LifeResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "life": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "life"
          ]
        },
        "LifeResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LifeResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "SetStatus": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntityStatusArgs"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "StringResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "StringsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "StringsWatchResult": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "watcher-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "watcher-id"
          ]
        },
        "StringsWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StringsWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        }
      }
    }
  },
  {
    "Name": "DiscoverSpaces",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "AddSubnets": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/AddSubnetsParams"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "CreateSpaces": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/CreateSpacesParams"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "ListSpaces": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/DiscoverSpacesResults"
            }
          }
        },
        "ListSubnets": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SubnetsFilters"
            },
            "Result": {
              "$ref": "#/definitions/ListSubnetsResults"
            }
          }
        },
        "ModelConfig": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ModelConfigResult"
            }
          }
        }
      },
      "definitions": {
        "AddSubnetParams": {
          "type": "object",
          "properties": {
            "space-tag": {
              "type": "string"
            },
            "subnet-provider-id": {
              "type": "string"
            },
            "subnet-tag": {
              "type": "string"
            },
            "zones": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "space-tag"
          ]
        },
        "AddSubnetsParams": {
          "type": "object",
          "properties": {
            "subnets": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AddSubnetParams"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "subnets"
          ]
        },
        "CreateSpaceParams": {
          "type": "object",
          "properties": {
            "provider-id": {
              "type": "string"
            },
            "public": {
              "type": "boolean"
            },
            "space-tag": {
              "type": "string"
            },
            "subnet-tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "subnet-tags",
            "space-tag",
            "public"
          ]
        },
        "CreateSpacesParams": {
          "type": "object",
          "properties": {
            "spaces": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CreateSpaceParams"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "spaces"
          ]
        },
        "DiscoverSpacesResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ProviderSpace"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "ListSubnetsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Subnet"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "ModelConfigResult": {
          "type": "object",
          "properties": {
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "ProviderSpace": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "name": {
              "type": "string"
            },
            "provider-id": {
              "type": "string"
            },
            "subnets": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Subnet"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "provider-id",
            "subnets"
          ]
        },
        "Subnet": {
          "type": "object",
          "properties": {
            "cidr": {
              "type": "string"
            },
            "life": {
              "type": "string"
            },
            "provider-id": {
              "type": "string"
            },
            "space-tag": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "vlan-tag": {
              "type": "integer"
            },
            "zones": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "cidr",
            "vlan-tag",
            "life",
            "space-tag",
            "zones"
          ]
        },
        "SubnetsFilters": {
          "type": "object",
          "properties": {
            "space-tag": {
              "type": "string"
            },
            "zone": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "DiskManager",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "SetMachineBlockDevices": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetMachineBlockDevices"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        }
      },
      "definitions": {
        "BlockDevice": {
          "type": "object",
          "properties": {
            "BusAddress": {
              "type": "string"
            },
            "DeviceLinks": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "DeviceName": {
              "type": "string"
            },
            "FilesystemType": {
              "type": "string"
            },
            "HardwareId": {
              "type": "string"
            },
            "InUse": {
              "type": "boolean"
            },
            "Label": {
              "type": "string"
            },
            "MountPoint": {
              "type": "string"
            },
            "Size": {
              "type": "integer"
            },
            "UUID": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "DeviceName",
            "DeviceLinks",
            "Label",
            "UUID",
            "HardwareId",
            "BusAddress",
            "Size",
            "FilesystemType",
            "InUse",
            "MountPoint"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "MachineBlockDevices": {
          "type": "object",
          "properties": {
            "block-devices": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/BlockDevice"
              }
            },
            "machine": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "machine"
          ]
        },
        "SetMachineBlockDevices": {
          "type": "object",
          "properties": {
            "machine-block-devices": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MachineBlockDevices"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "machine-block-devices"
          ]
        }
      }
    }
  },
  {
    "Name": "EntityWatcher",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "Next": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/EntitiesWatchResult"
            }
          }
        },
        "Stop": {
          "type": "object"
        }
      },
      "definitions": {
        "EntitiesWatchResult": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "watcher-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "watcher-id"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "FilesystemAttachmentsWatcher",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "Next": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/MachineStorageIdsWatchResult"
            }
          }
        },
        "Stop": {
          "type": "object"
        }
      },
      "definitions": {
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "MachineStorageId": {
          "type": "object",
          "properties": {
            "attachment-tag": {
              "type": "string"
            },
            "machine-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "machine-tag",
            "attachment-tag"
          ]
        },
        "MachineStorageIdsWatchResult": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MachineStorageId"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "watcher-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "watcher-id",
            "changes"
          ]
        }
      }
    }
  },
  {
    "Name": "Firewaller",
    "Version": 3,
    "Schema": {
      "type": "object",
      "properties": {
        "CloudSpec": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/CloudSpecResults"
            }
          }
        },
        "GetAssignedMachine": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringResults"
            }
          }
        },
        "GetCloudSpec": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ModelTag"
            },
            "Result": {
              "$ref": "#/definitions/CloudSpecResult"
            }
          }
        },
        "GetExposed": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/BoolResults"
            }
          }
        },
        "GetMachineActiveSubnets": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringsResults"
            }
          }
        },
        "GetMachinePorts": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/MachinePortsParams"
            },
            "Result": {
              "$ref": "#/definitions/MachinePortsResults"
            }
          }
        },
        "InstanceId": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringResults"
            }
          }
        },
        "Life": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/LifeResults"
            }
          }
        },
        "ModelConfig": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ModelConfigResult"
            }
          }
        },
        "Watch": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        },
        "WatchForModelConfigChanges": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/NotifyWatchResult"
            }
          }
        },
        "WatchModelMachines": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StringsWatchResult"
            }
          }
        },
        "WatchOpenedPorts": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringsWatchResults"
            }
          }
        },
        "WatchUnits": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringsWatchResults"
            }
          }
        }
      },
      "definitions": {
        "BoolResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "BoolResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/BoolResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "CloudCredential": {
          "type": "object",
          "properties": {
            "attrs": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "auth-type": {
              "type": "string"
            },
            "redacted": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "auth-type"
          ]
        },
        "CloudSpec": {
          "type": "object",
          "properties": {
            "credential": {
              "$ref": "#/definitions/CloudCredential"
            },
            "endpoint": {
              "type": "string"
            },
            "identity-endpoint": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "region": {
              "type": "string"
            },
            "storage-endpoint": {
              "type": "string"
            },
            "type": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "type",
            "name"
          ]
        },
        "CloudSpecResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/CloudSpec"
            }
          },
          "additionalProperties": false
        },
        "CloudSpecResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CloudSpecResult"
              }
            }
          },
          "additionalProperties": false
        },
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "LifeResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "life": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "life"
          ]
        },
        "LifeResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LifeResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "MachinePortRange": {
          "type": "object",
          "properties": {
            "port-range": {
              "$ref": "#/definitions/PortRange"
            },
            "relation-tag": {
              "type": "string"
            },
            "unit-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "unit-tag",
            "relation-tag",
            "port-range"
          ]
        },
        "MachinePorts": {
          "type": "object",
          "properties": {
            "machine-tag": {
              "type": "string"
            },
            "subnet-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "machine-tag",
            "subnet-tag"
          ]
        },
        "MachinePortsParams": {
          "type": "object",
          "properties": {
            "params": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MachinePorts"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "params"
          ]
        },
        "MachinePortsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "ports": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MachinePortRange"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "ports"
          ]
        },
        "MachinePortsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MachinePortsResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "ModelConfigResult": {
          "type": "object",
          "properties": {
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "ModelTag": {
          "type": "object",
          "additionalProperties": false
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "NotifyWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NotifyWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "PortRange": {
          "type": "object",
          "properties": {
            "from-port": {
              "type": "integer"
            },
            "protocol": {
              "type": "string"
            },
            "to-port": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "from-port",
            "to-port",
            "protocol"
          ]
        },
        "StringResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "StringResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StringResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "StringsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "StringsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StringsResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "StringsWatchResult": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "watcher-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "watcher-id"
          ]
        },
        "StringsWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StringsWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        }
      }
    }
  },
  {
    "Name": "HighAvailability",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "EnableHA": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ControllersSpecs"
            },
            "Result": {
              "$ref": "#/definitions/ControllersChangeResults"
            }
          }
        },
        "ResumeHAReplicationAfterUpgrade": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ResumeReplicationParams"
            }
          }
        },
        "StopHAReplicationForUpgrade": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/UpgradeMongoParams"
            },
            "Result": {
              "$ref": "#/definitions/MongoUpgradeResults"
            }
          }
        }
      },
      "definitions": {
        "Address": {
          "type": "object",
          "properties": {
            "Scope": {
              "type": "string"
            },
            "SpaceName": {
              "type": "string"
            },
            "SpaceProviderId": {
              "type": "string"
            },
            "Type": {
              "type": "string"
            },
            "Value": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "Value",
            "Type",
            "Scope",
            "SpaceName",
            "SpaceProviderId"
          ]
        },
        "ControllersChangeResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/ControllersChanges"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "ControllersChangeResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ControllersChangeResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "ControllersChanges": {
          "type": "object",
          "properties": {
            "added": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "converted": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "demoted": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "maintained": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "promoted": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "removed": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "ControllersSpec": {
          "type": "object",
          "properties": {
            "constraints": {
              "$ref": "#/definitions/Value"
            },
            "num-controllers": {
              "type": "integer"
            },
            "placement": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "series": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "num-controllers"
          ]
        },
        "ControllersSpecs": {
          "type": "object",
          "properties": {
            "specs": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ControllersSpec"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "specs"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "HAMember": {
          "type": "object",
          "properties": {
            "public-address": {
              "$ref": "#/definitions/Address"
            },
            "series": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "public-address",
            "series"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "Member": {
          "type": "object",
          "properties": {
            "Address": {
              "type": "string"
            },
            "Arbiter": {
              "type": "boolean"
            },
            "BuildIndexes": {
              "type": "boolean"
            },
            "Hidden": {
              "type": "boolean"
            },
            "Id": {
              "type": "integer"
            },
            "Priority": {
              "type": "number"
            },
            "SlaveDelay": {
              "type": "integer"
            },
            "Tags": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "Votes": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "Id",
            "Address",
            "Arbiter",
            "BuildIndexes",
            "Hidden",
            "Priority",
            "Tags",
            "SlaveDelay",
            "Votes"
          ]
        },
        "MongoUpgradeResults": {
          "type": "object",
          "properties": {
            "ha-members": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/HAMember"
              }
            },
            "master": {
              "$ref": "#/definitions/HAMember"
            },
            "rs-members": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Member"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "rs-members",
            "master",
            "ha-members"
          ]
        },
        "MongoVersion": {
          "type": "object",
          "properties": {
            "engine": {
              "type": "string"
            },
            "major": {
              "type": "integer"
            },
            "minor": {
              "type": "integer"
            },
            "patch": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "major",
            "minor",
            "patch",
            "engine"
          ]
        },
        "ResumeReplicationParams": {
          "type": "object",
          "properties": {
            "members": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Member"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "members"
          ]
        },
        "UpgradeMongoParams": {
          "type": "object",
          "properties": {
            "target": {
              "$ref": "#/definitions/MongoVersion"
            }
          },
          "additionalProperties": false,
          "required": [
            "target"
          ]
        },
        "Value": {
          "type": "object",
          "properties": {
            "arch": {
              "type": "string"
            },
            "container": {
              "type": "string"
            },
            "cores": {
              "type": "integer"
            },
            "cpu-power": {
              "type": "integer"
            },
            "instance-type": {
              "type": "string"
            },
            "mem": {
              "type": "integer"
            },
            "root-disk": {
              "type": "integer"
            },
            "spaces": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "virt-type": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "HostKeyReporter",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "ReportKeys": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SSHHostKeySet"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        }
      },
      "definitions": {
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "SSHHostKeySet": {
          "type": "object",
          "properties": {
            "entity-keys": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SSHHostKeys"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entity-keys"
          ]
        },
        "SSHHostKeys": {
          "type": "object",
          "properties": {
            "public-keys": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "public-keys"
          ]
        }
      }
    }
  },
  {
    "Name": "ImageManager",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "DeleteImages": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ImageFilterParams"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "ListImages": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ImageFilterParams"
            },
            "Result": {
              "$ref": "#/definitions/ListImageResult"
            }
          }
        }
      },
      "definitions": {
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "ImageFilterParams": {
          "type": "object",
          "properties": {
            "images": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ImageSpec"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "images"
          ]
        },
        "ImageMetadata": {
          "type": "object",
          "properties": {
            "arch": {
              "type": "string"
            },
            "created": {
              "type": "string",
              "format": "date-time"
            },
            "kind": {
              "type": "string"
            },
            "series": {
              "type": "string"
            },
            "url": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "kind",
            "arch",
            "series",
            "url",
            "created"
          ]
        },
        "ImageSpec": {
          "type": "object",
          "properties": {
            "arch": {
              "type": "string"
            },
            "kind": {
              "type": "string"
            },
            "series": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "kind",
            "arch",
            "series"
          ]
        },
        "ListImageResult": {
          "type": "object",
          "properties": {
            "result": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ImageMetadata"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "ImageMetadata",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "Delete": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/MetadataImageIds"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "List": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ImageMetadataFilter"
            },
            "Result": {
              "$ref": "#/definitions/ListCloudImageMetadataResult"
            }
          }
        },
        "Save": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/MetadataSaveParams"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "UpdateFromPublishedImages": {
          "type": "object"
        }
      },
      "definitions": {
        "CloudImageMetadata": {
          "type": "object",
          "properties": {
            "arch": {
              "type": "string"
            },
            "image-id": {
              "type": "string"
            },
            "priority": {
              "type": "integer"
            },
            "region": {
              "type": "string"
            },
            "root-storage-size": {
              "type": "integer"
            },
            "root-storage-type": {
              "type": "string"
            },
            "series": {
              "type": "string"
            },
            "source": {
              "type": "string"
            },
            "stream": {
              "type": "string"
            },
            "version": {
              "type": "string"
            },
            "virt-type": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "image-id",
            "region",
            "version",
            "series",
            "arch",
            "source",
            "priority"
          ]
        },
        "CloudImageMetadataList": {
          "type": "object",
          "properties": {
            "metadata": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CloudImageMetadata"
              }
            }
          },
          "additionalProperties": false
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "ImageMetadataFilter": {
          "type": "object",
          "properties": {
            "arches": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "region": {
              "type": "string"
            },
            "root-storage-type": {
              "type": "string"
            },
            "series": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "stream": {
              "type": "string"
            },
            "virt-type": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ListCloudImageMetadataResult": {
          "type": "object",
          "properties": {
            "result": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CloudImageMetadata"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "MetadataImageIds": {
          "type": "object",
          "properties": {
            "image-ids": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "image-ids"
          ]
        },
        "MetadataSaveParams": {
          "type": "object",
          "properties": {
            "metadata": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CloudImageMetadataList"
              }
            }
          },
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "InstancePoller",
    "Version": 3,
    "Schema": {
      "type": "object",
      "properties": {
        "AreManuallyProvisioned": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/BoolResults"
            }
          }
        },
        "InstanceId": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringResults"
            }
          }
        },
        "InstanceStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StatusResults"
            }
          }
        },
        "Life": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/LifeResults"
            }
          }
        },
        "ModelConfig": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ModelConfigResult"
            }
          }
        },
        "ProviderAddresses": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/MachineAddressesResults"
            }
          }
        },
        "SetInstanceStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetStatus"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetProviderAddresses": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetMachinesAddresses"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "Status": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StatusResults"
            }
          }
        },
        "WatchForModelConfigChanges": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/NotifyWatchResult"
            }
          }
        },
        "WatchModelMachines": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StringsWatchResult"
            }
          }
        }
      },
      "definitions": {
        "Address": {
          "type": "object",
          "properties": {
            "scope": {
              "type": "string"
            },
            "space-name": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "value",
            "type",
            "scope"
          ]
        },
        "BoolResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "BoolResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/BoolResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "EntityStatusArgs": {
          "type": "object",
          "properties": {
            "data": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "info": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "status",
            "info",
            "data"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "LifeResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "life": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "life"
          ]
        },
        "LifeResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LifeResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "MachineAddresses": {
          "type": "object",
          "properties": {
            "addresses": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Address"
              }
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "addresses"
          ]
        },
        "MachineAddressesResult": {
          "type": "object",
          "properties": {
            "addresses": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Address"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "addresses"
          ]
        },
        "MachineAddressesResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MachineAddressesResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "ModelConfigResult": {
          "type": "object",
          "properties": {
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "SetMachinesAddresses": {
          "type": "object",
          "properties": {
            "machine-addresses": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MachineAddresses"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "machine-addresses"
          ]
        },
        "SetStatus": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntityStatusArgs"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "StatusResult": {
          "type": "object",
          "properties": {
            "data": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "id": {
              "type": "string"
            },
            "info": {
              "type": "string"
            },
            "life": {
              "type": "string"
            },
            "since": {
              "type": "string",
              "format": "date-time"
            },
            "status": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "id",
            "life",
            "status",
            "info",
            "data",
            "since"
          ]
        },
        "StatusResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StatusResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "StringResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "StringResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StringResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "StringsWatchResult": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "watcher-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "watcher-id"
          ]
        }
      }
    }
  },
  {
    "Name": "KeyManager",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "AddKeys": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ModifyUserSSHKeys"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "DeleteKeys": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ModifyUserSSHKeys"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "ImportKeys": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ModifyUserSSHKeys"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "ListKeys": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ListSSHKeys"
            },
            "Result": {
              "$ref": "#/definitions/StringsResults"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "ListSSHKeys": {
          "type": "object",
          "properties": {
            "entities": {
              "$ref": "#/definitions/Entities"
            },
            "mode": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "entities",
            "mode"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "ModifyUserSSHKeys": {
          "type": "object",
          "properties": {
            "ssh-keys": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "user": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "user",
            "ssh-keys"
          ]
        },
        "StringsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "StringsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StringsResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        }
      }
    }
  },
  {
    "Name": "KeyUpdater",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "AuthorisedKeys": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringsResults"
            }
          }
        },
        "WatchAuthorisedKeys": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "NotifyWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NotifyWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "StringsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "StringsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StringsResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        }
      }
    }
  },
  {
    "Name": "LeadershipService",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "BlockUntilLeadershipReleased": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ApplicationTag"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResult"
            }
          }
        },
        "ClaimLeadership": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ClaimLeadershipBulkParams"
            },
            "Result": {
              "$ref": "#/definitions/ClaimLeadershipBulkResults"
            }
          }
        }
      },
      "definitions": {
        "ApplicationTag": {
          "type": "object",
          "properties": {
            "Name": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "Name"
          ]
        },
        "ClaimLeadershipBulkParams": {
          "type": "object",
          "properties": {
            "params": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ClaimLeadershipParams"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "params"
          ]
        },
        "ClaimLeadershipBulkResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "ClaimLeadershipParams": {
          "type": "object",
          "properties": {
            "application-tag": {
              "type": "string"
            },
            "duration": {
              "type": "number"
            },
            "unit-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "application-tag",
            "unit-tag",
            "duration"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "LifeFlag",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "Life": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/LifeResults"
            }
          }
        },
        "Watch": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "LifeResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "life": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "life"
          ]
        },
        "LifeResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LifeResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "NotifyWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NotifyWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        }
      }
    }
  },
  {
    "Name": "LogForwarding",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "GetLastSent": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/LogForwardingGetLastSentParams"
            },
            "Result": {
              "$ref": "#/definitions/LogForwardingGetLastSentResults"
            }
          }
        },
        "SetLastSent": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/LogForwardingSetLastSentParams"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        }
      },
      "definitions": {
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "LogForwardingGetLastSentParams": {
          "type": "object",
          "properties": {
            "ids": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LogForwardingID"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "ids"
          ]
        },
        "LogForwardingGetLastSentResult": {
          "type": "object",
          "properties": {
            "err": {
              "$ref": "#/definitions/Error"
            },
            "record-id": {
              "type": "integer"
            },
            "record-timestamp": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "record-id",
            "record-timestamp",
            "err"
          ]
        },
        "LogForwardingGetLastSentResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LogForwardingGetLastSentResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "LogForwardingID": {
          "type": "object",
          "properties": {
            "model": {
              "type": "string"
            },
            "sink": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "model",
            "sink"
          ]
        },
        "LogForwardingSetLastSentParam": {
          "type": "object",
          "properties": {
            "LogForwardingID": {
              "$ref": "#/definitions/LogForwardingID"
            },
            "record-id": {
              "type": "integer"
            },
            "record-timestamp": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "LogForwardingID",
            "record-id",
            "record-timestamp"
          ]
        },
        "LogForwardingSetLastSentParams": {
          "type": "object",
          "properties": {
            "params": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LogForwardingSetLastSentParam"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "params"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "Logger",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "LoggingConfig": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringResults"
            }
          }
        },
        "WatchLoggingConfig": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "NotifyWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NotifyWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "StringResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "StringResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StringResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        }
      }
    }
  },
  {
    "Name": "MachineActions",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "Actions": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ActionResults"
            }
          }
        },
        "BeginActions": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "FinishActions": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ActionExecutionResults"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "RunningActions": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ActionsByReceivers"
            }
          }
        },
        "WatchActionNotifications": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringsWatchResults"
            }
          }
        }
      },
      "definitions": {
        "Action": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "parameters": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "receiver": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "receiver",
            "name"
          ]
        },
        "ActionExecutionResult": {
          "type": "object",
          "properties": {
            "action-tag": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "results": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "status": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "action-tag",
            "status"
          ]
        },
        "ActionExecutionResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ActionExecutionResult"
              }
            }
          },
          "additionalProperties": false
        },
        "ActionResult": {
          "type": "object",
          "properties": {
            "action": {
              "$ref": "#/definitions/Action"
            },
            "completed": {
              "type": "string",
              "format": "date-time"
            },
            "enqueued": {
              "type": "string",
              "format": "date-time"
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "message": {
              "type": "string"
            },
            "output": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "started": {
              "type": "string",
              "format": "date-time"
            },
            "status": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ActionResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ActionResult"
              }
            }
          },
          "additionalProperties": false
        },
        "ActionsByReceiver": {
          "type": "object",
          "properties": {
            "actions": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ActionResult"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "receiver": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ActionsByReceivers": {
          "type": "object",
          "properties": {
            "actions": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ActionsByReceiver"
              }
            }
          },
          "additionalProperties": false
        },
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "StringsWatchResult": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "watcher-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "watcher-id"
          ]
        },
        "StringsWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StringsWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        }
      }
    }
  },
  {
    "Name": "MachineManager",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "AddMachines": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/AddMachines"
            },
            "Result": {
              "$ref": "#/definitions/AddMachinesResults"
            }
          }
        }
      },
      "definitions": {
        "AddMachineParams": {
          "type": "object",
          "properties": {
            "addresses": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Address"
              }
            },
            "constraints": {
              "$ref": "#/definitions/Value"
            },
            "container-type": {
              "type": "string"
            },
            "disks": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Constraints"
              }
            },
            "hardware-characteristics": {
              "$ref": "#/definitions/HardwareCharacteristics"
            },
            "instance-id": {
              "type": "string"
            },
            "jobs": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "nonce": {
              "type": "string"
            },
            "parent-id": {
              "type": "string"
            },
            "placement": {
              "$ref": "#/definitions/Placement"
            },
            "series": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "series",
            "constraints",
            "jobs",
            "parent-id",
            "container-type",
            "instance-id",
            "nonce",
            "hardware-characteristics",
            "addresses"
          ]
        },
        "AddMachines": {
          "type": "object",
          "properties": {
            "params": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AddMachineParams"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "params"
          ]
        },
        "AddMachinesResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "machine": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "machine"
          ]
        },
        "AddMachinesResults": {
          "type": "object",
          "properties": {
            "machines": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AddMachinesResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "machines"
          ]
        },
        "Address": {
          "type": "object",
          "properties": {
            "scope": {
              "type": "string"
            },
            "space-name": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "value",
            "type",
            "scope"
          ]
        },
        "Constraints": {
          "type": "object",
          "properties": {
            "Count": {
              "type": "integer"
            },
            "Pool": {
              "type": "string"
            },
            "Size": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "Pool",
            "Size",
            "Count"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "HardwareCharacteristics": {
          "type": "object",
          "properties": {
            "arch": {
              "type": "string"
            },
            "availability-zone": {
              "type": "string"
            },
            "cpu-cores": {
              "type": "integer"
            },
            "cpu-power": {
              "type": "integer"
            },
            "mem": {
              "type": "integer"
            },
            "root-disk": {
              "type": "integer"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "Placement": {
          "type": "object",
          "properties": {
            "directive": {
              "type": "string"
            },
            "scope": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "scope",
            "directive"
          ]
        },
        "Value": {
          "type": "object",
          "properties": {
            "arch": {
              "type": "string"
            },
            "container": {
              "type": "string"
            },
            "cores": {
              "type": "integer"
            },
            "cpu-power": {
              "type": "integer"
            },
            "instance-type": {
              "type": "string"
            },
            "mem": {
              "type": "integer"
            },
            "root-disk": {
              "type": "integer"
            },
            "spaces": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "virt-type": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "MachineUndertaker",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "AllMachineRemovals": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/EntitiesResults"
            }
          }
        },
        "CompleteMachineRemovals": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            }
          }
        },
        "GetMachineProviderInterfaceInfo": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ProviderInterfaceInfoResults"
            }
          }
        },
        "WatchMachineRemovals": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "EntitiesResult": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "EntitiesResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntitiesResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "NotifyWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NotifyWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "ProviderInterfaceInfo": {
          "type": "object",
          "properties": {
            "interface-name": {
              "type": "string"
            },
            "mac-address": {
              "type": "string"
            },
            "provider-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "interface-name",
            "mac-address",
            "provider-id"
          ]
        },
        "ProviderInterfaceInfoResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "interfaces": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ProviderInterfaceInfo"
              }
            },
            "machine-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "machine-tag",
            "interfaces"
          ]
        },
        "ProviderInterfaceInfoResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ProviderInterfaceInfoResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        }
      }
    }
  },
  {
    "Name": "Machiner",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "APIAddresses": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StringsResult"
            }
          }
        },
        "APIHostPorts": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/APIHostPortsResult"
            }
          }
        },
        "CACert": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/BytesResult"
            }
          }
        },
        "EnsureDead": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "Jobs": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/JobsResults"
            }
          }
        },
        "Life": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/LifeResults"
            }
          }
        },
        "ModelUUID": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StringResult"
            }
          }
        },
        "SetMachineAddresses": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetMachinesAddresses"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetObservedNetworkConfig": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetMachineNetworkConfig"
            }
          }
        },
        "SetProviderNetworkConfig": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetStatus"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "UpdateStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetStatus"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "Watch": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        },
        "WatchAPIHostPorts": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/NotifyWatchResult"
            }
          }
        }
      },
      "definitions": {
        "APIHostPortsResult": {
          "type": "object",
          "properties": {
            "servers": {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/HostPort"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "servers"
          ]
        },
        "Address": {
          "type": "object",
          "properties": {
            "scope": {
              "type": "string"
            },
            "space-name": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "value",
            "type",
            "scope"
          ]
        },
        "BytesResult": {
          "type": "object",
          "properties": {
            "result": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "EntityStatusArgs": {
          "type": "object",
          "properties": {
            "data": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "info": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "status",
            "info",
            "data"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "HostPort": {
          "type": "object",
          "properties": {
            "Address": {
              "$ref": "#/definitions/Address"
            },
            "port": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "Address",
            "port"
          ]
        },
        "JobsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "jobs": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "jobs"
          ]
        },
        "JobsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/JobsResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "LifeResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "life": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "life"
          ]
        },
        "LifeResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LifeResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "MachineAddresses": {
          "type": "object",
          "properties": {
            "addresses": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Address"
              }
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "addresses"
          ]
        },
        "NetworkConfig": {
          "type": "object",
          "properties": {
            "address": {
              "type": "string"
            },
            "cidr": {
              "type": "string"
            },
            "config-type": {
              "type": "string"
            },
            "device-index": {
              "type": "integer"
            },
            "disabled": {
              "type": "boolean"
            },
            "dns-search-domains": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "dns-servers": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "gateway-address": {
              "type": "string"
            },
            "interface-name": {
              "type": "string"
            },
            "interface-type": {
              "type": "string"
            },
            "mac-address": {
              "type": "string"
            },
            "mtu": {
              "type": "integer"
            },
            "no-auto-start": {
              "type": "boolean"
            },
            "parent-interface-name": {
              "type": "string"
            },
            "provider-address-id": {
              "type": "string"
            },
            "provider-id": {
              "type": "string"
            },
            "provider-space-id": {
              "type": "string"
            },
            "provider-subnet-id": {
              "type": "string"
            },
            "provider-vlan-id": {
              "type": "string"
            },
            "vlan-tag": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "device-index",
            "mac-address",
            "cidr",
            "mtu",
            "provider-id",
            "provider-subnet-id",
            "provider-space-id",
            "provider-address-id",
            "provider-vlan-id",
            "vlan-tag",
            "interface-name",
            "parent-interface-name",
            "interface-type",
            "disabled"
          ]
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "NotifyWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NotifyWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "SetMachineNetworkConfig": {
          "type": "object",
          "properties": {
            "config": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NetworkConfig"
              }
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "config"
          ]
        },
        "SetMachinesAddresses": {
          "type": "object",
          "properties": {
            "machine-addresses": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MachineAddresses"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "machine-addresses"
          ]
        },
        "SetStatus": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntityStatusArgs"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "StringResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "StringsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "MeterStatus",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "GetMeterStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/MeterStatusResults"
            }
          }
        },
        "WatchMeterStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "MeterStatusResult": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "info": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "code",
            "info"
          ]
        },
        "MeterStatusResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MeterStatusResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "NotifyWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NotifyWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        }
      }
    }
  },
  {
    "Name": "MetricsAdder",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "AddMetricBatches": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/MetricBatchParams"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        }
      },
      "definitions": {
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "Metric": {
          "type": "object",
          "properties": {
            "key": {
              "type": "string"
            },
            "time": {
              "type": "string",
              "format": "date-time"
            },
            "value": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "key",
            "value",
            "time"
          ]
        },
        "MetricBatch": {
          "type": "object",
          "properties": {
            "charm-url": {
              "type": "string"
            },
            "created": {
              "type": "string",
              "format": "date-time"
            },
            "metrics": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Metric"
              }
            },
            "uuid": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "uuid",
            "charm-url",
            "created",
            "metrics"
          ]
        },
        "MetricBatchParam": {
          "type": "object",
          "properties": {
            "batch": {
              "$ref": "#/definitions/MetricBatch"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "batch"
          ]
        },
        "MetricBatchParams": {
          "type": "object",
          "properties": {
            "batches": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MetricBatchParam"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "batches"
          ]
        }
      }
    }
  },
  {
    "Name": "MetricsDebug",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "GetMetrics": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/MetricResults"
            }
          }
        },
        "SetMeterStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/MeterStatusParams"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "EntityMetrics": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "metrics": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MetricResult"
              }
            }
          },
          "additionalProperties": false
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "MeterStatusParam": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "code",
            "info"
          ]
        },
        "MeterStatusParams": {
          "type": "object",
          "properties": {
            "statues": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MeterStatusParam"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "statues"
          ]
        },
        "MetricResult": {
          "type": "object",
          "properties": {
            "key": {
              "type": "string"
            },
            "time": {
              "type": "string",
              "format": "date-time"
            },
            "unit": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "time",
            "key",
            "value",
            "unit"
          ]
        },
        "MetricResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntityMetrics"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        }
      }
    }
  },
  {
    "Name": "MetricsManager",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "CleanupOldMetrics": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SendMetrics": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "MigrationFlag",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "Phase": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/PhaseResults"
            }
          }
        },
        "Watch": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "NotifyWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NotifyWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "PhaseResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "phase": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "PhaseResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/PhaseResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        }
      }
    }
  },
  {
    "Name": "MigrationMaster",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "Export": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/SerializedModel"
            }
          }
        },
        "MigrationStatus": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/MasterMigrationStatus"
            }
          }
        },
        "MinionReports": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/MinionReports"
            }
          }
        },
        "ModelInfo": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/MigrationModelInfo"
            }
          }
        },
        "Prechecks": {
          "type": "object"
        },
        "Reap": {
          "type": "object"
        },
        "SetPhase": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetMigrationPhaseArgs"
            }
          }
        },
        "SetStatusMessage": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetMigrationStatusMessageArgs"
            }
          }
        },
        "Watch": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/NotifyWatchResult"
            }
          }
        },
        "WatchMinionReports": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/NotifyWatchResult"
            }
          }
        }
      },
      "definitions": {
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "MasterMigrationStatus": {
          "type": "object",
          "properties": {
            "migration-id": {
              "type": "string"
            },
            "phase": {
              "type": "string"
            },
            "phase-changed-time": {
              "type": "string",
              "format": "date-time"
            },
            "spec": {
              "$ref": "#/definitions/MigrationSpec"
            }
          },
          "additionalProperties": false,
          "required": [
            "spec",
            "migration-id",
            "phase",
            "phase-changed-time"
          ]
        },
        "MigrationModelInfo": {
          "type": "object",
          "properties": {
            "agent-version": {
              "$ref": "#/definitions/Number"
            },
            "name": {
              "type": "string"
            },
            "owner-tag": {
              "type": "string"
            },
            "uuid": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "uuid",
            "name",
            "owner-tag",
            "agent-version"
          ]
        },
        "MigrationSpec": {
          "type": "object",
          "properties": {
            "external-control": {
              "type": "boolean"
            },
            "model-tag": {
              "type": "string"
            },
            "skip-initial-prechecks": {
              "type": "boolean"
            },
            "target-info": {
              "$ref": "#/definitions/MigrationTargetInfo"
            }
          },
          "additionalProperties": false,
          "required": [
            "model-tag",
            "target-info",
            "external-control",
            "skip-initial-prechecks"
          ]
        },
        "MigrationTargetInfo": {
          "type": "object",
          "properties": {
            "addrs": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "auth-tag": {
              "type": "string"
            },
            "ca-cert": {
              "type": "string"
            },
            "controller-tag": {
              "type": "string"
            },
            "macaroons": {
              "type": "string"
            },
            "password": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "controller-tag",
            "addrs",
            "ca-cert",
            "auth-tag"
          ]
        },
        "MinionReports": {
          "type": "object",
          "properties": {
            "failed": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "migration-id": {
              "type": "string"
            },
            "phase": {
              "type": "string"
            },
            "success-count": {
              "type": "integer"
            },
            "unknown-count": {
              "type": "integer"
            },
            "unknown-sample": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "migration-id",
            "phase",
            "success-count",
            "unknown-count",
            "unknown-sample",
            "failed"
          ]
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "Number": {
          "type": "object",
          "properties": {
            "Build": {
              "type": "integer"
            },
            "Major": {
              "type": "integer"
            },
            "Minor": {
              "type": "integer"
            },
            "Patch": {
              "type": "integer"
            },
            "Tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "Major",
            "Minor",
            "Tag",
            "Patch",
            "Build"
          ]
        },
        "SerializedModel": {
          "type": "object",
          "properties": {
            "bytes": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "charms": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "tools": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SerializedModelTools"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "bytes",
            "charms",
            "tools"
          ]
        },
        "SerializedModelTools": {
          "type": "object",
          "properties": {
            "uri": {
              "type": "string"
            },
            "version": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "version",
            "uri"
          ]
        },
        "SetMigrationPhaseArgs": {
          "type": "object",
          "properties": {
            "phase": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "phase"
          ]
        },
        "SetMigrationStatusMessageArgs": {
          "type": "object",
          "properties": {
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message"
          ]
        }
      }
    }
  },
  {
    "Name": "MigrationMinion",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "Report": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/MinionReport"
            }
          }
        },
        "Watch": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/NotifyWatchResult"
            }
          }
        }
      },
      "definitions": {
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "MinionReport": {
          "type": "object",
          "properties": {
            "migration-id": {
              "type": "string"
            },
            "phase": {
              "type": "string"
            },
            "success": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "migration-id",
            "phase",
            "success"
          ]
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        }
      }
    }
  },
  {
    "Name": "MigrationStatusWatcher",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "Next": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/MigrationStatus"
            }
          }
        },
        "Stop": {
          "type": "object"
        }
      },
      "definitions": {
        "MigrationStatus": {
          "type": "object",
          "properties": {
            "attempt": {
              "type": "integer"
            },
            "external-control": {
              "type": "boolean"
            },
            "migration-id": {
              "type": "string"
            },
            "phase": {
              "type": "string"
            },
            "source-api-addrs": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "source-ca-cert": {
              "type": "string"
            },
            "target-api-addrs": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "target-ca-cert": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "migration-id",
            "attempt",
            "phase",
            "external-control",
            "source-api-addrs",
            "source-ca-cert",
            "target-api-addrs",
            "target-ca-cert"
          ]
        }
      }
    }
  },
  {
    "Name": "MigrationTarget",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "Abort": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ModelArgs"
            }
          }
        },
        "Activate": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ModelArgs"
            }
          }
        },
        "Import": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SerializedModel"
            }
          }
        },
        "Prechecks": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/MigrationModelInfo"
            }
          }
        }
      },
      "definitions": {
        "MigrationModelInfo": {
          "type": "object",
          "properties": {
            "agent-version": {
              "$ref": "#/definitions/Number"
            },
            "name": {
              "type": "string"
            },
            "owner-tag": {
              "type": "string"
            },
            "uuid": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "uuid",
            "name",
            "owner-tag",
            "agent-version"
          ]
        },
        "ModelArgs": {
          "type": "object",
          "properties": {
            "model-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "model-tag"
          ]
        },
        "Number": {
          "type": "object",
          "properties": {
            "Build": {
              "type": "integer"
            },
            "Major": {
              "type": "integer"
            },
            "Minor": {
              "type": "integer"
            },
            "Patch": {
              "type": "integer"
            },
            "Tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "Major",
            "Minor",
            "Tag",
            "Patch",
            "Build"
          ]
        },
        "SerializedModel": {
          "type": "object",
          "properties": {
            "bytes": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "charms": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "tools": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SerializedModelTools"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "bytes",
            "charms",
            "tools"
          ]
        },
        "SerializedModelTools": {
          "type": "object",
          "properties": {
            "uri": {
              "type": "string"
            },
            "version": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "version",
            "uri"
          ]
        }
      }
    }
  },
  {
    "Name": "ModelConfig",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "ModelGet": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ModelConfigResults"
            }
          }
        },
        "ModelSet": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ModelSet"
            }
          }
        },
        "ModelUnset": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ModelUnset"
            }
          }
        }
      },
      "definitions": {
        "ConfigValue": {
          "type": "object",
          "properties": {
            "source": {
              "type": "string"
            },
            "value": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "additionalProperties": false,
          "required": [
            "value",
            "source"
          ]
        },
        "ModelConfigResults": {
          "type": "object",
          "properties": {
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/ConfigValue"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "ModelSet": {
          "type": "object",
          "properties": {
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "ModelUnset": {
          "type": "object",
          "properties": {
            "keys": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "keys"
          ]
        }
      }
    }
  },
  {
    "Name": "ModelManager",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "CreateModel": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ModelCreateArgs"
            },
            "Result": {
              "$ref": "#/definitions/ModelInfo"
            }
          }
        },
        "DestroyModels": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "DumpModels": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/MapResults"
            }
          }
        },
        "DumpModelsDB": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/MapResults"
            }
          }
        },
        "ListModels": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entity"
            },
            "Result": {
              "$ref": "#/definitions/UserModelList"
            }
          }
        },
        "ModelDefaults": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ModelDefaultsResult"
            }
          }
        },
        "ModelInfo": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ModelInfoResults"
            }
          }
        },
        "ModelStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ModelStatusResults"
            }
          }
        },
        "ModifyModelAccess": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ModifyModelAccessRequest"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetModelDefaults": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetModelDefaults"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "UnsetModelDefaults": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/UnsetModelDefaults"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "EntityStatus": {
          "type": "object",
          "properties": {
            "data": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "info": {
              "type": "string"
            },
            "since": {
              "type": "string",
              "format": "date-time"
            },
            "status": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "status",
            "info",
            "since"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "MachineHardware": {
          "type": "object",
          "properties": {
            "arch": {
              "type": "string"
            },
            "availability-zone": {
              "type": "string"
            },
            "cores": {
              "type": "integer"
            },
            "cpu-power": {
              "type": "integer"
            },
            "mem": {
              "type": "integer"
            },
            "root-disk": {
              "type": "integer"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "MapResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "MapResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MapResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Model": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "owner-tag": {
              "type": "string"
            },
            "uuid": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "uuid",
            "owner-tag"
          ]
        },
        "ModelCreateArgs": {
          "type": "object",
          "properties": {
            "cloud-tag": {
              "type": "string"
            },
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "credential": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "owner-tag": {
              "type": "string"
            },
            "region": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "owner-tag"
          ]
        },
        "ModelDefaultValues": {
          "type": "object",
          "properties": {
            "cloud-region": {
              "type": "string"
            },
            "cloud-tag": {
              "type": "string"
            },
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "ModelDefaults": {
          "type": "object",
          "properties": {
            "controller": {
              "type": "object",
              "additionalProperties": true
            },
            "default": {
              "type": "object",
              "additionalProperties": true
            },
            "regions": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/RegionDefaults"
              }
            }
          },
          "additionalProperties": false
        },
        "ModelDefaultsResult": {
          "type": "object",
          "properties": {
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/ModelDefaults"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "ModelInfo": {
          "type": "object",
          "properties": {
            "cloud-credential-tag": {
              "type": "string"
            },
            "cloud-region": {
              "type": "string"
            },
            "cloud-tag": {
              "type": "string"
            },
            "controller-uuid": {
              "type": "string"
            },
            "default-series": {
              "type": "string"
            },
            "life": {
              "type": "string"
            },
            "machines": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ModelMachineInfo"
              }
            },
            "name": {
              "type": "string"
            },
            "owner-tag": {
              "type": "string"
            },
            "provider-type": {
              "type": "string"
            },
            "status": {
              "$ref": "#/definitions/EntityStatus"
            },
            "users": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ModelUserInfo"
              }
            },
            "uuid": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "uuid",
            "controller-uuid",
            "provider-type",
            "default-series",
            "cloud-tag",
            "owner-tag",
            "life",
            "status",
            "users",
            "machines"
          ]
        },
        "ModelInfoResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/ModelInfo"
            }
          },
          "additionalProperties": false
        },
        "ModelInfoResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ModelInfoResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "ModelMachineInfo": {
          "type": "object",
          "properties": {
            "hardware": {
              "$ref": "#/definitions/MachineHardware"
            },
            "has-vote": {
              "type": "boolean"
            },
            "id": {
              "type": "string"
            },
            "instance-id": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "wants-vote": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "id"
          ]
        },
        "ModelStatus": {
          "type": "object",
          "properties": {
            "application-count": {
              "type": "integer"
            },
            "hosted-machine-count": {
              "type": "integer"
            },
            "life": {
              "type": "string"
            },
            "machines": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ModelMachineInfo"
              }
            },
            "model-tag": {
              "type": "string"
            },
            "owner-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "model-tag",
            "life",
            "hosted-machine-count",
            "application-count",
            "owner-tag"
          ]
        },
        "ModelStatusResults": {
          "type": "object",
          "properties": {
            "models": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ModelStatus"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "models"
          ]
        },
        "ModelUnsetKeys": {
          "type": "object",
          "properties": {
            "cloud-region": {
              "type": "string"
            },
            "cloud-tag": {
              "type": "string"
            },
            "keys": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "keys"
          ]
        },
        "ModelUserInfo": {
          "type": "object",
          "properties": {
            "access": {
              "type": "string"
            },
            "display-name": {
              "type": "string"
            },
            "last-connection": {
              "type": "string",
              "format": "date-time"
            },
            "user": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "user",
            "display-name",
            "last-connection",
            "access"
          ]
        },
        "ModifyModelAccess": {
          "type": "object",
          "properties": {
            "access": {
              "type": "string"
            },
            "action": {
              "type": "string"
            },
            "model-tag": {
              "type": "string"
            },
            "user-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "user-tag",
            "action",
            "access",
            "model-tag"
          ]
        },
        "ModifyModelAccessRequest": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ModifyModelAccess"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "changes"
          ]
        },
        "RegionDefaults": {
          "type": "object",
          "properties": {
            "region-name": {
              "type": "string"
            },
            "value": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "additionalProperties": false,
          "required": [
            "region-name",
            "value"
          ]
        },
        "SetModelDefaults": {
          "type": "object",
          "properties": {
            "config": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ModelDefaultValues"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "UnsetModelDefaults": {
          "type": "object",
          "properties": {
            "keys": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ModelUnsetKeys"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "keys"
          ]
        },
        "UserModel": {
          "type": "object",
          "properties": {
            "last-connection": {
              "type": "string",
              "format": "date-time"
            },
            "model": {
              "$ref": "#/definitions/Model"
            }
          },
          "additionalProperties": false,
          "required": [
            "model",
            "last-connection"
          ]
        },
        "UserModelList": {
          "type": "object",
          "properties": {
            "user-models": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UserModel"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "user-models"
          ]
        }
      }
    }
  },
  {
    "Name": "NotifyWatcher",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "Next": {
          "type": "object"
        },
        "Stop": {
          "type": "object"
        }
      }
    }
  },
  {
    "Name": "Payloads",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "List": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/EnvListArgs"
            },
            "Result": {
              "$ref": "#/definitions/EnvListResults"
            }
          }
        }
      },
      "definitions": {
        "EnvListArgs": {
          "type": "object",
          "properties": {
            "patterns": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "patterns"
          ]
        },
        "EnvListResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Payload"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Payload": {
          "type": "object",
          "properties": {
            "class": {
              "type": "string"
            },
            "id": {
              "type": "string"
            },
            "labels": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "machine": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "unit": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "class",
            "type",
            "id",
            "status",
            "labels",
            "unit",
            "machine"
          ]
        }
      }
    }
  },
  {
    "Name": "PayloadsHookContext",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "List": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/PayloadResults"
            }
          }
        },
        "LookUp": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/LookUpArgs"
            },
            "Result": {
              "$ref": "#/definitions/PayloadResults"
            }
          }
        },
        "SetStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetStatusArgs"
            },
            "Result": {
              "$ref": "#/definitions/PayloadResults"
            }
          }
        },
        "Track": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/TrackArgs"
            },
            "Result": {
              "$ref": "#/definitions/PayloadResults"
            }
          }
        },
        "Untrack": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/PayloadResults"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "LookUpArg": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "id"
          ]
        },
        "LookUpArgs": {
          "type": "object",
          "properties": {
            "args": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LookUpArg"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "args"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "Payload": {
          "type": "object",
          "properties": {
            "class": {
              "type": "string"
            },
            "id": {
              "type": "string"
            },
            "labels": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "machine": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "unit": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "class",
            "type",
            "id",
            "status",
            "labels",
            "unit",
            "machine"
          ]
        },
        "PayloadResult": {
          "type": "object",
          "properties": {
            "Entity": {
              "$ref": "#/definitions/Entity"
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "not-found": {
              "type": "boolean"
            },
            "payload": {
              "$ref": "#/definitions/Payload"
            }
          },
          "additionalProperties": false,
          "required": [
            "Entity",
            "payload",
            "not-found"
          ]
        },
        "PayloadResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/PayloadResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "SetStatusArg": {
          "type": "object",
          "properties": {
            "Entity": {
              "$ref": "#/definitions/Entity"
            },
            "status": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "Entity",
            "status"
          ]
        },
        "SetStatusArgs": {
          "type": "object",
          "properties": {
            "args": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SetStatusArg"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "args"
          ]
        },
        "TrackArgs": {
          "type": "object",
          "properties": {
            "payloads": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Payload"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "payloads"
          ]
        }
      }
    }
  },
  {
    "Name": "Pinger",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "Ping": {
          "type": "object"
        },
        "Stop": {
          "type": "object"
        }
      }
    }
  },
  {
    "Name": "Provisioner",
    "Version": 3,
    "Schema": {
      "type": "object",
      "properties": {
        "APIAddresses": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StringsResult"
            }
          }
        },
        "APIHostPorts": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/APIHostPortsResult"
            }
          }
        },
        "CACert": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/BytesResult"
            }
          }
        },
        "Constraints": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ConstraintsResults"
            }
          }
        },
        "ContainerConfig": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ContainerConfig"
            }
          }
        },
        "ContainerManagerConfig": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ContainerManagerConfigParams"
            },
            "Result": {
              "$ref": "#/definitions/ContainerManagerConfig"
            }
          }
        },
        "ControllerConfig": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ControllerConfigResult"
            }
          }
        },
        "DistributionGroup": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/DistributionGroupResults"
            }
          }
        },
        "EnsureDead": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "FindTools": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/FindToolsParams"
            },
            "Result": {
              "$ref": "#/definitions/FindToolsResult"
            }
          }
        },
        "GetContainerInterfaceInfo": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/MachineNetworkConfigResults"
            }
          }
        },
        "InstanceId": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringResults"
            }
          }
        },
        "InstanceStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StatusResults"
            }
          }
        },
        "Life": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/LifeResults"
            }
          }
        },
        "MachinesWithTransientErrors": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StatusResults"
            }
          }
        },
        "MarkMachinesForRemoval": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "ModelConfig": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ModelConfigResult"
            }
          }
        },
        "ModelUUID": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StringResult"
            }
          }
        },
        "PrepareContainerInterfaceInfo": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/MachineNetworkConfigResults"
            }
          }
        },
        "ProvisioningInfo": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ProvisioningInfoResults"
            }
          }
        },
        "ReleaseContainerAddresses": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "Remove": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "Series": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringResults"
            }
          }
        },
        "SetInstanceInfo": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/InstancesInfo"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetInstanceStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetStatus"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetPasswords": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/EntityPasswords"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetStatus"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetSupportedContainers": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/MachineContainersParams"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "StateAddresses": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StringsResult"
            }
          }
        },
        "Status": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StatusResults"
            }
          }
        },
        "Tools": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ToolsResults"
            }
          }
        },
        "UpdateStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetStatus"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "WatchAPIHostPorts": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/NotifyWatchResult"
            }
          }
        },
        "WatchAllContainers": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/WatchContainers"
            },
            "Result": {
              "$ref": "#/definitions/StringsWatchResults"
            }
          }
        },
        "WatchContainers": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/WatchContainers"
            },
            "Result": {
              "$ref": "#/definitions/StringsWatchResults"
            }
          }
        },
        "WatchForModelConfigChanges": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/NotifyWatchResult"
            }
          }
        },
        "WatchMachineErrorRetry": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/NotifyWatchResult"
            }
          }
        },
        "WatchModelMachines": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StringsWatchResult"
            }
          }
        }
      },
      "definitions": {
        "APIHostPortsResult": {
          "type": "object",
          "properties": {
            "servers": {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/HostPort"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "servers"
          ]
        },
        "Address": {
          "type": "object",
          "properties": {
            "scope": {
              "type": "string"
            },
            "space-name": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "value",
            "type",
            "scope"
          ]
        },
        "Binary": {
          "type": "object",
          "properties": {
            "Arch": {
              "type": "string"
            },
            "Number": {
              "$ref": "#/definitions/Number"
            },
            "Series": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "Number",
            "Series",
            "Arch"
          ]
        },
        "BytesResult": {
          "type": "object",
          "properties": {
            "result": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "CloudImageMetadata": {
          "type": "object",
          "properties": {
            "arch": {
              "type": "string"
            },
            "image-id": {
              "type": "string"
            },
            "priority": {
              "type": "integer"
            },
            "region": {
              "type": "string"
            },
            "root-storage-size": {
              "type": "integer"
            },
            "root-storage-type": {
              "type": "string"
            },
            "series": {
              "type": "string"
            },
            "source": {
              "type": "string"
            },
            "stream": {
              "type": "string"
            },
            "version": {
              "type": "string"
            },
            "virt-type": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "image-id",
            "region",
            "version",
            "series",
            "arch",
            "source",
            "priority"
          ]
        },
        "ConstraintsResult": {
          "type": "object",
          "properties": {
            "constraints": {
              "$ref": "#/definitions/Value"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "constraints"
          ]
        },
        "ConstraintsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ConstraintsResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "ContainerConfig": {
          "type": "object",
          "properties": {
            "UpdateBehavior": {
              "$ref": "#/definitions/UpdateBehavior"
            },
            "apt-mirror": {
              "type": "string"
            },
            "apt-proxy": {
              "$ref": "#/definitions/Settings"
            },
            "authorized-keys": {
              "type": "string"
            },
            "provider-type": {
              "type": "string"
            },
            "proxy": {
              "$ref": "#/definitions/Settings"
            },
            "ssl-hostname-verification": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "provider-type",
            "authorized-keys",
            "ssl-hostname-verification",
            "proxy",
            "apt-proxy",
            "apt-mirror",
            "UpdateBehavior"
          ]
        },
        "ContainerManagerConfig": {
          "type": "object",
          "properties": {
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "ContainerManagerConfigParams": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "type"
          ]
        },
        "ControllerConfigResult": {
          "type": "object",
          "properties": {
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "DistributionGroupResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "DistributionGroupResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/DistributionGroupResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "EntityPassword": {
          "type": "object",
          "properties": {
            "password": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "password"
          ]
        },
        "EntityPasswords": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntityPassword"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "changes"
          ]
        },
        "EntityStatusArgs": {
          "type": "object",
          "properties": {
            "data": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "info": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "status",
            "info",
            "data"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "FindToolsParams": {
          "type": "object",
          "properties": {
            "arch": {
              "type": "string"
            },
            "major": {
              "type": "integer"
            },
            "minor": {
              "type": "integer"
            },
            "number": {
              "$ref": "#/definitions/Number"
            },
            "series": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "number",
            "major",
            "minor",
            "arch",
            "series"
          ]
        },
        "FindToolsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "list": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Tools"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "list"
          ]
        },
        "HardwareCharacteristics": {
          "type": "object",
          "properties": {
            "arch": {
              "type": "string"
            },
            "availability-zone": {
              "type": "string"
            },
            "cpu-cores": {
              "type": "integer"
            },
            "cpu-power": {
              "type": "integer"
            },
            "mem": {
              "type": "integer"
            },
            "root-disk": {
              "type": "integer"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "HostPort": {
          "type": "object",
          "properties": {
            "Address": {
              "$ref": "#/definitions/Address"
            },
            "port": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "Address",
            "port"
          ]
        },
        "InstanceInfo": {
          "type": "object",
          "properties": {
            "characteristics": {
              "$ref": "#/definitions/HardwareCharacteristics"
            },
            "instance-id": {
              "type": "string"
            },
            "network-config": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NetworkConfig"
              }
            },
            "nonce": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            },
            "volume-attachments": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/VolumeAttachmentInfo"
                }
              }
            },
            "volumes": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Volume"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "instance-id",
            "nonce",
            "characteristics",
            "volumes",
            "volume-attachments",
            "network-config"
          ]
        },
        "InstancesInfo": {
          "type": "object",
          "properties": {
            "machines": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/InstanceInfo"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "machines"
          ]
        },
        "LifeResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "life": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "life"
          ]
        },
        "LifeResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LifeResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "MachineContainers": {
          "type": "object",
          "properties": {
            "container-types": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "machine-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "machine-tag",
            "container-types"
          ]
        },
        "MachineContainersParams": {
          "type": "object",
          "properties": {
            "params": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MachineContainers"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "params"
          ]
        },
        "MachineNetworkConfigResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "info": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NetworkConfig"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "info"
          ]
        },
        "MachineNetworkConfigResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MachineNetworkConfigResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "ModelConfigResult": {
          "type": "object",
          "properties": {
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "NetworkConfig": {
          "type": "object",
          "properties": {
            "address": {
              "type": "string"
            },
            "cidr": {
              "type": "string"
            },
            "config-type": {
              "type": "string"
            },
            "device-index": {
              "type": "integer"
            },
            "disabled": {
              "type": "boolean"
            },
            "dns-search-domains": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "dns-servers": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "gateway-address": {
              "type": "string"
            },
            "interface-name": {
              "type": "string"
            },
            "interface-type": {
              "type": "string"
            },
            "mac-address": {
              "type": "string"
            },
            "mtu": {
              "type": "integer"
            },
            "no-auto-start": {
              "type": "boolean"
            },
            "parent-interface-name": {
              "type": "string"
            },
            "provider-address-id": {
              "type": "string"
            },
            "provider-id": {
              "type": "string"
            },
            "provider-space-id": {
              "type": "string"
            },
            "provider-subnet-id": {
              "type": "string"
            },
            "provider-vlan-id": {
              "type": "string"
            },
            "vlan-tag": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "device-index",
            "mac-address",
            "cidr",
            "mtu",
            "provider-id",
            "provider-subnet-id",
            "provider-space-id",
            "provider-address-id",
            "provider-vlan-id",
            "vlan-tag",
            "interface-name",
            "parent-interface-name",
            "interface-type",
            "disabled"
          ]
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "Number": {
          "type": "object",
          "properties": {
            "Build": {
              "type": "integer"
            },
            "Major": {
              "type": "integer"
            },
            "Minor": {
              "type": "integer"
            },
            "Patch": {
              "type": "integer"
            },
            "Tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "Major",
            "Minor",
            "Tag",
            "Patch",
            "Build"
          ]
        },
        "ProvisioningInfo": {
          "type": "object",
          "properties": {
            "constraints": {
              "$ref": "#/definitions/Value"
            },
            "controller-config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "endpoint-bindings": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "image-metadata": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CloudImageMetadata"
              }
            },
            "jobs": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "placement": {
              "type": "string"
            },
            "series": {
              "type": "string"
            },
            "subnets-to-zones": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            },
            "tags": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "volumes": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/VolumeParams"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "constraints",
            "series",
            "placement",
            "jobs"
          ]
        },
        "ProvisioningInfoResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/ProvisioningInfo"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "ProvisioningInfoResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ProvisioningInfoResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "SetStatus": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntityStatusArgs"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Settings": {
          "type": "object",
          "properties": {
            "Ftp": {
              "type": "string"
            },
            "Http": {
              "type": "string"
            },
            "Https": {
              "type": "string"
            },
            "NoProxy": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "Http",
            "Https",
            "Ftp",
            "NoProxy"
          ]
        },
        "StatusResult": {
          "type": "object",
          "properties": {
            "data": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "id": {
              "type": "string"
            },
            "info": {
              "type": "string"
            },
            "life": {
              "type": "string"
            },
            "since": {
              "type": "string",
              "format": "date-time"
            },
            "status": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "id",
            "life",
            "status",
            "info",
            "data",
            "since"
          ]
        },
        "StatusResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StatusResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "StringResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "StringResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StringResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "StringsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "StringsWatchResult": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "watcher-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "watcher-id"
          ]
        },
        "StringsWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StringsWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Tools": {
          "type": "object",
          "properties": {
            "sha256": {
              "type": "string"
            },
            "size": {
              "type": "integer"
            },
            "url": {
              "type": "string"
            },
            "version": {
              "$ref": "#/definitions/Binary"
            }
          },
          "additionalProperties": false,
          "required": [
            "version",
            "url",
            "size"
          ]
        },
        "ToolsResult": {
          "type": "object",
          "properties": {
            "disable-ssl-hostname-verification": {
              "type": "boolean"
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "tools": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Tools"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "tools",
            "disable-ssl-hostname-verification"
          ]
        },
        "ToolsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ToolsResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "UpdateBehavior": {
          "type": "object",
          "properties": {
            "enable-os-refresh-update": {
              "type": "boolean"
            },
            "enable-os-upgrade": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "enable-os-refresh-update",
            "enable-os-upgrade"
          ]
        },
        "Value": {
          "type": "object",
          "properties": {
            "arch": {
              "type": "string"
            },
            "container": {
              "type": "string"
            },
            "cores": {
              "type": "integer"
            },
            "cpu-power": {
              "type": "integer"
            },
            "instance-type": {
              "type": "string"
            },
            "mem": {
              "type": "integer"
            },
            "root-disk": {
              "type": "integer"
            },
            "spaces": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "virt-type": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "Volume": {
          "type": "object",
          "properties": {
            "info": {
              "$ref": "#/definitions/VolumeInfo"
            },
            "volume-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "volume-tag",
            "info"
          ]
        },
        "VolumeAttachmentInfo": {
          "type": "object",
          "properties": {
            "bus-address": {
              "type": "string"
            },
            "device-link": {
              "type": "string"
            },
            "device-name": {
              "type": "string"
            },
            "read-only": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        },
        "VolumeAttachmentParams": {
          "type": "object",
          "properties": {
            "instance-id": {
              "type": "string"
            },
            "machine-tag": {
              "type": "string"
            },
            "provider": {
              "type": "string"
            },
            "read-only": {
              "type": "boolean"
            },
            "volume-id": {
              "type": "string"
            },
            "volume-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "volume-tag",
            "machine-tag",
            "provider"
          ]
        },
        "VolumeInfo": {
          "type": "object",
          "properties": {
            "hardware-id": {
              "type": "string"
            },
            "persistent": {
              "type": "boolean"
            },
            "size": {
              "type": "integer"
            },
            "volume-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "volume-id",
            "size",
            "persistent"
          ]
        },
        "VolumeParams": {
          "type": "object",
          "properties": {
            "attachment": {
              "$ref": "#/definitions/VolumeAttachmentParams"
            },
            "attributes": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "provider": {
              "type": "string"
            },
            "size": {
              "type": "integer"
            },
            "tags": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "volume-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "volume-tag",
            "size",
            "provider"
          ]
        },
        "WatchContainer": {
          "type": "object",
          "properties": {
            "container-type": {
              "type": "string"
            },
            "machine-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "machine-tag",
            "container-type"
          ]
        },
        "WatchContainers": {
          "type": "object",
          "properties": {
            "params": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/WatchContainer"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "params"
          ]
        }
      }
    }
  },
  {
    "Name": "ProxyUpdater",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "ProxyConfig": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ProxyConfigResults"
            }
          }
        },
        "WatchForProxyConfigAndAPIHostPortChanges": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "NotifyWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NotifyWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "ProxyConfig": {
          "type": "object",
          "properties": {
            "ftp": {
              "type": "string"
            },
            "http": {
              "type": "string"
            },
            "https": {
              "type": "string"
            },
            "no-proxy": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "http",
            "https",
            "ftp",
            "no-proxy"
          ]
        },
        "ProxyConfigResult": {
          "type": "object",
          "properties": {
            "apt-proxy-settings": {
              "$ref": "#/definitions/ProxyConfig"
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "proxy-settings": {
              "$ref": "#/definitions/ProxyConfig"
            }
          },
          "additionalProperties": false,
          "required": [
            "proxy-settings",
            "apt-proxy-settings"
          ]
        },
        "ProxyConfigResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ProxyConfigResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        }
      }
    }
  },
  {
    "Name": "Reboot",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "ClearReboot": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "GetRebootAction": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/RebootActionResults"
            }
          }
        },
        "RequestReboot": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "WatchForRebootEvent": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/NotifyWatchResult"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "RebootActionResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "RebootActionResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/RebootActionResult"
              }
            }
          },
          "additionalProperties": false
        }
      }
    }
  },
  {
    "Name": "RelationUnitsWatcher",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "Next": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/RelationUnitsWatchResult"
            }
          }
        },
        "Stop": {
          "type": "object"
        }
      },
      "definitions": {
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "RelationUnitsChange": {
          "type": "object",
          "properties": {
            "changed": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/UnitSettings"
                }
              }
            },
            "departed": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "changed"
          ]
        },
        "RelationUnitsWatchResult": {
          "type": "object",
          "properties": {
            "changes": {
              "$ref": "#/definitions/RelationUnitsChange"
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "watcher-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "watcher-id",
            "changes"
          ]
        },
        "UnitSettings": {
          "type": "object",
          "properties": {
            "version": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "version"
          ]
        }
      }
    }
  },
  {
    "Name": "Resources",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "AddPendingResources": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/AddPendingResourcesArgs"
            },
            "Result": {
              "$ref": "#/definitions/AddPendingResourcesResult"
            }
          }
        },
        "ListResources": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ListResourcesArgs"
            },
            "Result": {
              "$ref": "#/definitions/ResourcesResults"
            }
          }
        }
      },
      "definitions": {
        "AddCharmWithAuthorization": {
          "type": "object",
          "properties": {
            "channel": {
              "type": "string"
            },
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "url": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "url",
            "channel",
            "macaroon"
          ]
        },
        "AddPendingResourcesArgs": {
          "type": "object",
          "properties": {
            "AddCharmWithAuthorization": {
              "$ref": "#/definitions/AddCharmWithAuthorization"
            },
            "Entity": {
              "$ref": "#/definitions/Entity"
            },
            "Resources": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CharmResource"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "Entity",
            "AddCharmWithAuthorization",
            "Resources"
          ]
        },
        "AddPendingResourcesResult": {
          "type": "object",
          "properties": {
            "ErrorResult": {
              "$ref": "#/definitions/ErrorResult"
            },
            "pending-ids": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "ErrorResult",
            "pending-ids"
          ]
        },
        "CharmResource": {
          "type": "object",
          "properties": {
            "description": {
              "type": "string"
            },
            "fingerprint": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "name": {
              "type": "string"
            },
            "origin": {
              "type": "string"
            },
            "path": {
              "type": "string"
            },
            "revision": {
              "type": "integer"
            },
            "size": {
              "type": "integer"
            },
            "type": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "type",
            "path",
            "origin",
            "revision",
            "fingerprint",
            "size"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ListResourcesArgs": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "Resource": {
          "type": "object",
          "properties": {
            "CharmResource": {
              "$ref": "#/definitions/CharmResource"
            },
            "application": {
              "type": "string"
            },
            "id": {
              "type": "string"
            },
            "pending-id": {
              "type": "string"
            },
            "timestamp": {
              "type": "string",
              "format": "date-time"
            },
            "username": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "CharmResource",
            "id",
            "pending-id",
            "application",
            "username",
            "timestamp"
          ]
        },
        "ResourcesResult": {
          "type": "object",
          "properties": {
            "ErrorResult": {
              "$ref": "#/definitions/ErrorResult"
            },
            "charm-store-resources": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CharmResource"
              }
            },
            "resources": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Resource"
              }
            },
            "unit-resources": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UnitResources"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "ErrorResult",
            "resources",
            "charm-store-resources",
            "unit-resources"
          ]
        },
        "ResourcesResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ResourcesResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "UnitResources": {
          "type": "object",
          "properties": {
            "Entity": {
              "$ref": "#/definitions/Entity"
            },
            "download-progress": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "integer"
                }
              }
            },
            "resources": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Resource"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "Entity",
            "resources",
            "download-progress"
          ]
        }
      }
    }
  },
  {
    "Name": "ResourcesHookContext",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "GetResourceInfo": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ListResourcesArgs"
            },
            "Result": {
              "$ref": "#/definitions/ResourcesResult"
            }
          }
        }
      },
      "definitions": {
        "CharmResource": {
          "type": "object",
          "properties": {
            "description": {
              "type": "string"
            },
            "fingerprint": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "name": {
              "type": "string"
            },
            "origin": {
              "type": "string"
            },
            "path": {
              "type": "string"
            },
            "revision": {
              "type": "integer"
            },
            "size": {
              "type": "integer"
            },
            "type": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "type",
            "path",
            "origin",
            "revision",
            "fingerprint",
            "size"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ListResourcesArgs": {
          "type": "object",
          "properties": {
            "resource-names": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "resource-names"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "Resource": {
          "type": "object",
          "properties": {
            "CharmResource": {
              "$ref": "#/definitions/CharmResource"
            },
            "application": {
              "type": "string"
            },
            "id": {
              "type": "string"
            },
            "pending-id": {
              "type": "string"
            },
            "timestamp": {
              "type": "string",
              "format": "date-time"
            },
            "username": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "CharmResource",
            "id",
            "pending-id",
            "application",
            "username",
            "timestamp"
          ]
        },
        "ResourceResult": {
          "type": "object",
          "properties": {
            "ErrorResult": {
              "$ref": "#/definitions/ErrorResult"
            },
            "resource": {
              "$ref": "#/definitions/Resource"
            }
          },
          "additionalProperties": false,
          "required": [
            "ErrorResult",
            "resource"
          ]
        },
        "ResourcesResult": {
          "type": "object",
          "properties": {
            "ErrorResult": {
              "$ref": "#/definitions/ErrorResult"
            },
            "resources": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ResourceResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "ErrorResult",
            "resources"
          ]
        }
      }
    }
  },
  {
    "Name": "Resumer",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "ResumeTransactions": {
          "type": "object"
        }
      }
    }
  },
  {
    "Name": "RetryStrategy",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "RetryStrategy": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/RetryStrategyResults"
            }
          }
        },
        "WatchRetryStrategy": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "NotifyWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NotifyWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "RetryStrategy": {
          "type": "object",
          "properties": {
            "jitter-retry-time": {
              "type": "boolean"
            },
            "max-retry-time": {
              "type": "integer"
            },
            "min-retry-time": {
              "type": "integer"
            },
            "retry-time-factor": {
              "type": "integer"
            },
            "should-retry": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "should-retry",
            "min-retry-time",
            "max-retry-time",
            "jitter-retry-time",
            "retry-time-factor"
          ]
        },
        "RetryStrategyResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/RetryStrategy"
            }
          },
          "additionalProperties": false
        },
        "RetryStrategyResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/RetryStrategyResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        }
      }
    }
  },
  {
    "Name": "SSHClient",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "AllAddresses": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/SSHAddressesResults"
            }
          }
        },
        "PrivateAddress": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/SSHAddressResults"
            }
          }
        },
        "Proxy": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/SSHProxyResult"
            }
          }
        },
        "PublicAddress": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/SSHAddressResults"
            }
          }
        },
        "PublicKeys": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/SSHPublicKeysResults"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "SSHAddressResult": {
          "type": "object",
          "properties": {
            "address": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "SSHAddressResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SSHAddressResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "SSHAddressesResult": {
          "type": "object",
          "properties": {
            "addresses": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "addresses"
          ]
        },
        "SSHAddressesResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SSHAddressesResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "SSHProxyResult": {
          "type": "object",
          "properties": {
            "use-proxy": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "use-proxy"
          ]
        },
        "SSHPublicKeysResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "public-keys": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "SSHPublicKeysResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SSHPublicKeysResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        }
      }
    }
  },
  {
    "Name": "Singular",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "Claim": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SingularClaims"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "Wait": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "SingularClaim": {
          "type": "object",
          "properties": {
            "controller-tag": {
              "type": "string"
            },
            "duration": {
              "type": "integer"
            },
            "model-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "model-tag",
            "controller-tag",
            "duration"
          ]
        },
        "SingularClaims": {
          "type": "object",
          "properties": {
            "claims": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SingularClaim"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "claims"
          ]
        }
      }
    }
  },
  {
    "Name": "Spaces",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "CreateSpaces": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/CreateSpacesParams"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "ListSpaces": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ListSpacesResults"
            }
          }
        }
      },
      "definitions": {
        "CreateSpaceParams": {
          "type": "object",
          "properties": {
            "provider-id": {
              "type": "string"
            },
            "public": {
              "type": "boolean"
            },
            "space-tag": {
              "type": "string"
            },
            "subnet-tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "subnet-tags",
            "space-tag",
            "public"
          ]
        },
        "CreateSpacesParams": {
          "type": "object",
          "properties": {
            "spaces": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CreateSpaceParams"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "spaces"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "ListSpacesResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Space"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "Space": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "name": {
              "type": "string"
            },
            "subnets": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Subnet"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "subnets"
          ]
        },
        "Subnet": {
          "type": "object",
          "properties": {
            "cidr": {
              "type": "string"
            },
            "life": {
              "type": "string"
            },
            "provider-id": {
              "type": "string"
            },
            "space-tag": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "vlan-tag": {
              "type": "integer"
            },
            "zones": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "cidr",
            "vlan-tag",
            "life",
            "space-tag",
            "zones"
          ]
        }
      }
    }
  },
  {
    "Name": "StatusHistory",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "Prune": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/StatusHistoryPruneArgs"
            }
          }
        }
      },
      "definitions": {
        "StatusHistoryPruneArgs": {
          "type": "object",
          "properties": {
            "max-history-mb": {
              "type": "integer"
            },
            "max-history-time": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "max-history-time",
            "max-history-mb"
          ]
        }
      }
    }
  },
  {
    "Name": "Storage",
    "Version": 3,
    "Schema": {
      "type": "object",
      "properties": {
        "AddToUnit": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/StoragesAddParams"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "CreatePool": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/StoragePool"
            }
          }
        },
        "ListFilesystems": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/FilesystemFilters"
            },
            "Result": {
              "$ref": "#/definitions/FilesystemDetailsListResults"
            }
          }
        },
        "ListPools": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/StoragePoolFilters"
            },
            "Result": {
              "$ref": "#/definitions/StoragePoolsResults"
            }
          }
        },
        "ListStorageDetails": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/StorageFilters"
            },
            "Result": {
              "$ref": "#/definitions/StorageDetailsListResults"
            }
          }
        },
        "ListVolumes": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/VolumeFilters"
            },
            "Result": {
              "$ref": "#/definitions/VolumeDetailsListResults"
            }
          }
        },
        "StorageDetails": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StorageDetailsResults"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "EntityStatus": {
          "type": "object",
          "properties": {
            "data": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "info": {
              "type": "string"
            },
            "since": {
              "type": "string",
              "format": "date-time"
            },
            "status": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "status",
            "info",
            "since"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "FilesystemAttachmentInfo": {
          "type": "object",
          "properties": {
            "mount-point": {
              "type": "string"
            },
            "read-only": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        },
        "FilesystemDetails": {
          "type": "object",
          "properties": {
            "filesystem-tag": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/FilesystemInfo"
            },
            "machine-attachments": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/FilesystemAttachmentInfo"
                }
              }
            },
            "status": {
              "$ref": "#/definitions/EntityStatus"
            },
            "storage": {
              "$ref": "#/definitions/StorageDetails"
            },
            "volume-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "filesystem-tag",
            "info",
            "status"
          ]
        },
        "FilesystemDetailsListResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/FilesystemDetails"
              }
            }
          },
          "additionalProperties": false
        },
        "FilesystemDetailsListResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/FilesystemDetailsListResult"
              }
            }
          },
          "additionalProperties": false
        },
        "FilesystemFilter": {
          "type": "object",
          "properties": {
            "machines": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "FilesystemFilters": {
          "type": "object",
          "properties": {
            "filters": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/FilesystemFilter"
              }
            }
          },
          "additionalProperties": false
        },
        "FilesystemInfo": {
          "type": "object",
          "properties": {
            "filesystem-id": {
              "type": "string"
            },
            "size": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "filesystem-id",
            "size"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "StorageAddParams": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "storage": {
              "$ref": "#/definitions/StorageConstraints"
            },
            "unit": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "unit",
            "name",
            "storage"
          ]
        },
        "StorageAttachmentDetails": {
          "type": "object",
          "properties": {
            "location": {
              "type": "string"
            },
            "machine-tag": {
              "type": "string"
            },
            "storage-tag": {
              "type": "string"
            },
            "unit-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "storage-tag",
            "unit-tag",
            "machine-tag"
          ]
        },
        "StorageConstraints": {
          "type": "object",
          "properties": {
            "count": {
              "type": "integer"
            },
            "pool": {
              "type": "string"
            },
            "size": {
              "type": "integer"
            }
          },
          "additionalProperties": false
        },
        "StorageDetails": {
          "type": "object",
          "properties": {
            "attachments": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/StorageAttachmentDetails"
                }
              }
            },
            "kind": {
              "type": "integer"
            },
            "owner-tag": {
              "type": "string"
            },
            "persistent": {
              "type": "boolean"
            },
            "status": {
              "$ref": "#/definitions/EntityStatus"
            },
            "storage-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "storage-tag",
            "owner-tag",
            "kind",
            "status",
            "persistent"
          ]
        },
        "StorageDetailsListResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StorageDetails"
              }
            }
          },
          "additionalProperties": false
        },
        "StorageDetailsListResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StorageDetailsListResult"
              }
            }
          },
          "additionalProperties": false
        },
        "StorageDetailsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/StorageDetails"
            }
          },
          "additionalProperties": false
        },
        "StorageDetailsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StorageDetailsResult"
              }
            }
          },
          "additionalProperties": false
        },
        "StorageFilter": {
          "type": "object",
          "additionalProperties": false
        },
        "StorageFilters": {
          "type": "object",
          "properties": {
            "filters": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StorageFilter"
              }
            }
          },
          "additionalProperties": false
        },
        "StoragePool": {
          "type": "object",
          "properties": {
            "attrs": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "name": {
              "type": "string"
            },
            "provider": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "provider",
            "attrs"
          ]
        },
        "StoragePoolFilter": {
          "type": "object",
          "properties": {
            "names": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "providers": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "StoragePoolFilters": {
          "type": "object",
          "properties": {
            "filters": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StoragePoolFilter"
              }
            }
          },
          "additionalProperties": false
        },
        "StoragePoolsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "storage-pools": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StoragePool"
              }
            }
          },
          "additionalProperties": false
        },
        "StoragePoolsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StoragePoolsResult"
              }
            }
          },
          "additionalProperties": false
        },
        "StoragesAddParams": {
          "type": "object",
          "properties": {
            "storages": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StorageAddParams"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "storages"
          ]
        },
        "VolumeAttachmentInfo": {
          "type": "object",
          "properties": {
            "bus-address": {
              "type": "string"
            },
            "device-link": {
              "type": "string"
            },
            "device-name": {
              "type": "string"
            },
            "read-only": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        },
        "VolumeDetails": {
          "type": "object",
          "properties": {
            "info": {
              "$ref": "#/definitions/VolumeInfo"
            },
            "machine-attachments": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/VolumeAttachmentInfo"
                }
              }
            },
            "status": {
              "$ref": "#/definitions/EntityStatus"
            },
            "storage": {
              "$ref": "#/definitions/StorageDetails"
            },
            "volume-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "volume-tag",
            "info",
            "status"
          ]
        },
        "VolumeDetailsListResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/VolumeDetails"
              }
            }
          },
          "additionalProperties": false
        },
        "VolumeDetailsListResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/VolumeDetailsListResult"
              }
            }
          },
          "additionalProperties": false
        },
        "VolumeFilter": {
          "type": "object",
          "properties": {
            "machines": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "VolumeFilters": {
          "type": "object",
          "properties": {
            "filters": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/VolumeFilter"
              }
            }
          },
          "additionalProperties": false
        },
        "VolumeInfo": {
          "type": "object",
          "properties": {
            "hardware-id": {
              "type": "string"
            },
            "persistent": {
              "type": "boolean"
            },
            "size": {
              "type": "integer"
            },
            "volume-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "volume-id",
            "size",
            "persistent"
          ]
        }
      }
    }
  },
  {
    "Name": "StorageProvisioner",
    "Version": 3,
    "Schema": {
      "type": "object",
      "properties": {
        "AttachmentLife": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/MachineStorageIds"
            },
            "Result": {
              "$ref": "#/definitions/LifeResults"
            }
          }
        },
        "EnsureDead": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "FilesystemAttachmentParams": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/MachineStorageIds"
            },
            "Result": {
              "$ref": "#/definitions/FilesystemAttachmentParamsResults"
            }
          }
        },
        "FilesystemAttachments": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/MachineStorageIds"
            },
            "Result": {
              "$ref": "#/definitions/FilesystemAttachmentResults"
            }
          }
        },
        "FilesystemParams": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/FilesystemParamsResults"
            }
          }
        },
        "Filesystems": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/FilesystemResults"
            }
          }
        },
        "InstanceId": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringResults"
            }
          }
        },
        "Life": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/LifeResults"
            }
          }
        },
        "Remove": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "RemoveAttachment": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/MachineStorageIds"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetFilesystemAttachmentInfo": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/FilesystemAttachments"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetFilesystemInfo": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Filesystems"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetStatus"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetVolumeAttachmentInfo": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/VolumeAttachments"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetVolumeInfo": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Volumes"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "UpdateStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetStatus"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "VolumeAttachmentParams": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/MachineStorageIds"
            },
            "Result": {
              "$ref": "#/definitions/VolumeAttachmentParamsResults"
            }
          }
        },
        "VolumeAttachments": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/MachineStorageIds"
            },
            "Result": {
              "$ref": "#/definitions/VolumeAttachmentResults"
            }
          }
        },
        "VolumeBlockDevices": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/MachineStorageIds"
            },
            "Result": {
              "$ref": "#/definitions/BlockDeviceResults"
            }
          }
        },
        "VolumeParams": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/VolumeParamsResults"
            }
          }
        },
        "Volumes": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/VolumeResults"
            }
          }
        },
        "WatchBlockDevices": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        },
        "WatchFilesystemAttachments": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/MachineStorageIdsWatchResults"
            }
          }
        },
        "WatchFilesystems": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringsWatchResults"
            }
          }
        },
        "WatchMachines": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        },
        "WatchVolumeAttachments": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/MachineStorageIdsWatchResults"
            }
          }
        },
        "WatchVolumes": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringsWatchResults"
            }
          }
        }
      },
      "definitions": {
        "BlockDevice": {
          "type": "object",
          "properties": {
            "BusAddress": {
              "type": "string"
            },
            "DeviceLinks": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "DeviceName": {
              "type": "string"
            },
            "FilesystemType": {
              "type": "string"
            },
            "HardwareId": {
              "type": "string"
            },
            "InUse": {
              "type": "boolean"
            },
            "Label": {
              "type": "string"
            },
            "MountPoint": {
              "type": "string"
            },
            "Size": {
              "type": "integer"
            },
            "UUID": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "DeviceName",
            "DeviceLinks",
            "Label",
            "UUID",
            "HardwareId",
            "BusAddress",
            "Size",
            "FilesystemType",
            "InUse",
            "MountPoint"
          ]
        },
        "BlockDeviceResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/BlockDevice"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "BlockDeviceResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/BlockDeviceResult"
              }
            }
          },
          "additionalProperties": false
        },
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "EntityStatusArgs": {
          "type": "object",
          "properties": {
            "data": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "info": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "status",
            "info",
            "data"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Filesystem": {
          "type": "object",
          "properties": {
            "filesystem-tag": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/FilesystemInfo"
            },
            "volume-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "filesystem-tag",
            "info"
          ]
        },
        "FilesystemAttachment": {
          "type": "object",
          "properties": {
            "filesystem-tag": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/FilesystemAttachmentInfo"
            },
            "machine-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "filesystem-tag",
            "machine-tag",
            "info"
          ]
        },
        "FilesystemAttachmentInfo": {
          "type": "object",
          "properties": {
            "mount-point": {
              "type": "string"
            },
            "read-only": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        },
        "FilesystemAttachmentParams": {
          "type": "object",
          "properties": {
            "filesystem-id": {
              "type": "string"
            },
            "filesystem-tag": {
              "type": "string"
            },
            "instance-id": {
              "type": "string"
            },
            "machine-tag": {
              "type": "string"
            },
            "mount-point": {
              "type": "string"
            },
            "provider": {
              "type": "string"
            },
            "read-only": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "filesystem-tag",
            "machine-tag",
            "provider"
          ]
        },
        "FilesystemAttachmentParamsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/FilesystemAttachmentParams"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "FilesystemAttachmentParamsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/FilesystemAttachmentParamsResult"
              }
            }
          },
          "additionalProperties": false
        },
        "FilesystemAttachmentResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/FilesystemAttachment"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "FilesystemAttachmentResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/FilesystemAttachmentResult"
              }
            }
          },
          "additionalProperties": false
        },
        "FilesystemAttachments": {
          "type": "object",
          "properties": {
            "filesystem-attachments": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/FilesystemAttachment"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "filesystem-attachments"
          ]
        },
        "FilesystemInfo": {
          "type": "object",
          "properties": {
            "filesystem-id": {
              "type": "string"
            },
            "size": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "filesystem-id",
            "size"
          ]
        },
        "FilesystemParams": {
          "type": "object",
          "properties": {
            "attachment": {
              "$ref": "#/definitions/FilesystemAttachmentParams"
            },
            "attributes": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "filesystem-tag": {
              "type": "string"
            },
            "provider": {
              "type": "string"
            },
            "size": {
              "type": "integer"
            },
            "tags": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "volume-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "filesystem-tag",
            "size",
            "provider"
          ]
        },
        "FilesystemParamsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/FilesystemParams"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "FilesystemParamsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/FilesystemParamsResult"
              }
            }
          },
          "additionalProperties": false
        },
        "FilesystemResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/Filesystem"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "FilesystemResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/FilesystemResult"
              }
            }
          },
          "additionalProperties": false
        },
        "Filesystems": {
          "type": "object",
          "properties": {
            "filesystems": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Filesystem"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "filesystems"
          ]
        },
        "LifeResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "life": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "life"
          ]
        },
        "LifeResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LifeResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "MachineStorageId": {
          "type": "object",
          "properties": {
            "attachment-tag": {
              "type": "string"
            },
            "machine-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "machine-tag",
            "attachment-tag"
          ]
        },
        "MachineStorageIds": {
          "type": "object",
          "properties": {
            "ids": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MachineStorageId"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "ids"
          ]
        },
        "MachineStorageIdsWatchResult": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MachineStorageId"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "watcher-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "watcher-id",
            "changes"
          ]
        },
        "MachineStorageIdsWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MachineStorageIdsWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "NotifyWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NotifyWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "SetStatus": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntityStatusArgs"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "StringResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "StringResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StringResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "StringsWatchResult": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "watcher-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "watcher-id"
          ]
        },
        "StringsWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StringsWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Volume": {
          "type": "object",
          "properties": {
            "info": {
              "$ref": "#/definitions/VolumeInfo"
            },
            "volume-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "volume-tag",
            "info"
          ]
        },
        "VolumeAttachment": {
          "type": "object",
          "properties": {
            "info": {
              "$ref": "#/definitions/VolumeAttachmentInfo"
            },
            "machine-tag": {
              "type": "string"
            },
            "volume-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "volume-tag",
            "machine-tag",
            "info"
          ]
        },
        "VolumeAttachmentInfo": {
          "type": "object",
          "properties": {
            "bus-address": {
              "type": "string"
            },
            "device-link": {
              "type": "string"
            },
            "device-name": {
              "type": "string"
            },
            "read-only": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        },
        "VolumeAttachmentParams": {
          "type": "object",
          "properties": {
            "instance-id": {
              "type": "string"
            },
            "machine-tag": {
              "type": "string"
            },
            "provider": {
              "type": "string"
            },
            "read-only": {
              "type": "boolean"
            },
            "volume-id": {
              "type": "string"
            },
            "volume-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "volume-tag",
            "machine-tag",
            "provider"
          ]
        },
        "VolumeAttachmentParamsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/VolumeAttachmentParams"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "VolumeAttachmentParamsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/VolumeAttachmentParamsResult"
              }
            }
          },
          "additionalProperties": false
        },
        "VolumeAttachmentResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/VolumeAttachment"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "VolumeAttachmentResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/VolumeAttachmentResult"
              }
            }
          },
          "additionalProperties": false
        },
        "VolumeAttachments": {
          "type": "object",
          "properties": {
            "volume-attachments": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/VolumeAttachment"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "volume-attachments"
          ]
        },
        "VolumeInfo": {
          "type": "object",
          "properties": {
            "hardware-id": {
              "type": "string"
            },
            "persistent": {
              "type": "boolean"
            },
            "size": {
              "type": "integer"
            },
            "volume-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "volume-id",
            "size",
            "persistent"
          ]
        },
        "VolumeParams": {
          "type": "object",
          "properties": {
            "attachment": {
              "$ref": "#/definitions/VolumeAttachmentParams"
            },
            "attributes": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "provider": {
              "type": "string"
            },
            "size": {
              "type": "integer"
            },
            "tags": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "volume-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "volume-tag",
            "size",
            "provider"
          ]
        },
        "VolumeParamsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/VolumeParams"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "VolumeParamsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/VolumeParamsResult"
              }
            }
          },
          "additionalProperties": false
        },
        "VolumeResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/Volume"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "VolumeResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/VolumeResult"
              }
            }
          },
          "additionalProperties": false
        },
        "Volumes": {
          "type": "object",
          "properties": {
            "volumes": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Volume"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "volumes"
          ]
        }
      }
    }
  },
  {
    "Name": "StringsWatcher",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "Next": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StringsWatchResult"
            }
          }
        },
        "Stop": {
          "type": "object"
        }
      },
      "definitions": {
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "StringsWatchResult": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "watcher-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "watcher-id"
          ]
        }
      }
    }
  },
  {
    "Name": "Subnets",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "AddSubnets": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/AddSubnetsParams"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "AllSpaces": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/SpaceResults"
            }
          }
        },
        "AllZones": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ZoneResults"
            }
          }
        },
        "ListSubnets": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SubnetsFilters"
            },
            "Result": {
              "$ref": "#/definitions/ListSubnetsResults"
            }
          }
        }
      },
      "definitions": {
        "AddSubnetParams": {
          "type": "object",
          "properties": {
            "space-tag": {
              "type": "string"
            },
            "subnet-provider-id": {
              "type": "string"
            },
            "subnet-tag": {
              "type": "string"
            },
            "zones": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "space-tag"
          ]
        },
        "AddSubnetsParams": {
          "type": "object",
          "properties": {
            "subnets": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AddSubnetParams"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "subnets"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "ListSubnetsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Subnet"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "SpaceResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "SpaceResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SpaceResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Subnet": {
          "type": "object",
          "properties": {
            "cidr": {
              "type": "string"
            },
            "life": {
              "type": "string"
            },
            "provider-id": {
              "type": "string"
            },
            "space-tag": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "vlan-tag": {
              "type": "integer"
            },
            "zones": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "cidr",
            "vlan-tag",
            "life",
            "space-tag",
            "zones"
          ]
        },
        "SubnetsFilters": {
          "type": "object",
          "properties": {
            "space-tag": {
              "type": "string"
            },
            "zone": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ZoneResult": {
          "type": "object",
          "properties": {
            "available": {
              "type": "boolean"
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "name": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "available"
          ]
        },
        "ZoneResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ZoneResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        }
      }
    }
  },
  {
    "Name": "Undertaker",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "ModelConfig": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ModelConfigResult"
            }
          }
        },
        "ModelInfo": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/UndertakerModelInfoResult"
            }
          }
        },
        "ProcessDyingModel": {
          "type": "object"
        },
        "RemoveModel": {
          "type": "object"
        },
        "SetStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetStatus"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "UpdateStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetStatus"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "WatchModelResources": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        }
      },
      "definitions": {
        "EntityStatusArgs": {
          "type": "object",
          "properties": {
            "data": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "info": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "status",
            "info",
            "data"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "ModelConfigResult": {
          "type": "object",
          "properties": {
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "NotifyWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NotifyWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "SetStatus": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntityStatusArgs"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "UndertakerModelInfo": {
          "type": "object",
          "properties": {
            "global-name": {
              "type": "string"
            },
            "is-system": {
              "type": "boolean"
            },
            "life": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "uuid": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "uuid",
            "name",
            "global-name",
            "is-system",
            "life"
          ]
        },
        "UndertakerModelInfoResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/UndertakerModelInfo"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        }
      }
    }
  },
  {
    "Name": "UnitAssigner",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "AssignUnits": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetAgentStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetStatus"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "WatchUnitAssignments": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StringsWatchResult"
            }
          }
        }
      },
      "definitions": {
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "EntityStatusArgs": {
          "type": "object",
          "properties": {
            "data": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "info": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "status",
            "info",
            "data"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "SetStatus": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntityStatusArgs"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "StringsWatchResult": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "watcher-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "watcher-id"
          ]
        }
      }
    }
  },
  {
    "Name": "Uniter",
    "Version": 4,
    "Schema": {
      "type": "object",
      "properties": {
        "APIAddresses": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StringsResult"
            }
          }
        },
        "APIHostPorts": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/APIHostPortsResult"
            }
          }
        },
        "Actions": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ActionResults"
            }
          }
        },
        "AddMetricBatches": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/MetricBatchParams"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "AddUnitStorage": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/StoragesAddParams"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "AllMachinePorts": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/MachinePortsResults"
            }
          }
        },
        "ApplicationStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ApplicationStatusResults"
            }
          }
        },
        "AssignedMachine": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringResults"
            }
          }
        },
        "AvailabilityZone": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringResults"
            }
          }
        },
        "BeginActions": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "CACert": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/BytesResult"
            }
          }
        },
        "CharmArchiveSha256": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/CharmURLs"
            },
            "Result": {
              "$ref": "#/definitions/StringResults"
            }
          }
        },
        "CharmModifiedVersion": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/IntResults"
            }
          }
        },
        "CharmURL": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringBoolResults"
            }
          }
        },
        "ClearResolved": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "ClosePorts": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/EntitiesPortRanges"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "ConfigSettings": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ConfigSettingsResults"
            }
          }
        },
        "CurrentModel": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ModelResult"
            }
          }
        },
        "Destroy": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "DestroyAllSubordinates": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "DestroyUnitStorageAttachments": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "EnsureDead": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "EnterScope": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/RelationUnits"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "FinishActions": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/ActionExecutionResults"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "GetMeterStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/MeterStatusResults"
            }
          }
        },
        "GetPrincipal": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringBoolResults"
            }
          }
        },
        "HasSubordinates": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/BoolResults"
            }
          }
        },
        "JoinedRelations": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringsResults"
            }
          }
        },
        "LeaveScope": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/RelationUnits"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "Life": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/LifeResults"
            }
          }
        },
        "Merge": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/MergeLeadershipSettingsBulkParams"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "ModelConfig": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/ModelConfigResult"
            }
          }
        },
        "ModelUUID": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StringResult"
            }
          }
        },
        "NetworkConfig": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/UnitsNetworkConfig"
            },
            "Result": {
              "$ref": "#/definitions/UnitNetworkConfigResults"
            }
          }
        },
        "OpenPorts": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/EntitiesPortRanges"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "PrivateAddress": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringResults"
            }
          }
        },
        "ProviderType": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/StringResult"
            }
          }
        },
        "PublicAddress": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringResults"
            }
          }
        },
        "Read": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/GetLeadershipSettingsBulkResults"
            }
          }
        },
        "ReadRemoteSettings": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/RelationUnitPairs"
            },
            "Result": {
              "$ref": "#/definitions/SettingsResults"
            }
          }
        },
        "ReadSettings": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/RelationUnits"
            },
            "Result": {
              "$ref": "#/definitions/SettingsResults"
            }
          }
        },
        "Relation": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/RelationUnits"
            },
            "Result": {
              "$ref": "#/definitions/RelationResults"
            }
          }
        },
        "RelationById": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/RelationIds"
            },
            "Result": {
              "$ref": "#/definitions/RelationResults"
            }
          }
        },
        "RemoveStorageAttachments": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/StorageAttachmentIds"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "RequestReboot": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "Resolved": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ResolvedModeResults"
            }
          }
        },
        "SetAgentStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetStatus"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetApplicationStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetStatus"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetCharmURL": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/EntitiesCharmURL"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetStatus"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetUnitStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/SetStatus"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetWorkloadVersion": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/EntityWorkloadVersions"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "StorageAttachmentLife": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/StorageAttachmentIds"
            },
            "Result": {
              "$ref": "#/definitions/LifeResults"
            }
          }
        },
        "StorageAttachments": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/StorageAttachmentIds"
            },
            "Result": {
              "$ref": "#/definitions/StorageAttachmentResults"
            }
          }
        },
        "UnitStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StatusResults"
            }
          }
        },
        "UnitStorageAttachments": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StorageAttachmentIdsResults"
            }
          }
        },
        "UpdateSettings": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/RelationUnitsSettings"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "Watch": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        },
        "WatchAPIHostPorts": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/NotifyWatchResult"
            }
          }
        },
        "WatchActionNotifications": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringsWatchResults"
            }
          }
        },
        "WatchApplicationRelations": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringsWatchResults"
            }
          }
        },
        "WatchConfigSettings": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        },
        "WatchForModelConfigChanges": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/NotifyWatchResult"
            }
          }
        },
        "WatchLeadershipSettings": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        },
        "WatchMeterStatus": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        },
        "WatchRelationUnits": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/RelationUnits"
            },
            "Result": {
              "$ref": "#/definitions/RelationUnitsWatchResults"
            }
          }
        },
        "WatchStorageAttachments": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/StorageAttachmentIds"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        },
        "WatchUnitAddresses": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        },
        "WatchUnitStorageAttachments": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringsWatchResults"
            }
          }
        },
        "WorkloadVersion": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/StringResults"
            }
          }
        }
      },
      "definitions": {
        "APIHostPortsResult": {
          "type": "object",
          "properties": {
            "servers": {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/HostPort"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "servers"
          ]
        },
        "Action": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "parameters": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "receiver": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "receiver",
            "name"
          ]
        },
        "ActionExecutionResult": {
          "type": "object",
          "properties": {
            "action-tag": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "results": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "status": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "action-tag",
            "status"
          ]
        },
        "ActionExecutionResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ActionExecutionResult"
              }
            }
          },
          "additionalProperties": false
        },
        "ActionResult": {
          "type": "object",
          "properties": {
            "action": {
              "$ref": "#/definitions/Action"
            },
            "completed": {
              "type": "string",
              "format": "date-time"
            },
            "enqueued": {
              "type": "string",
              "format": "date-time"
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "message": {
              "type": "string"
            },
            "output": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "started": {
              "type": "string",
              "format": "date-time"
            },
            "status": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ActionResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ActionResult"
              }
            }
          },
          "additionalProperties": false
        },
        "Address": {
          "type": "object",
          "properties": {
            "scope": {
              "type": "string"
            },
            "space-name": {
              "type": "string"
            },
            "type": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "value",
            "type",
            "scope"
          ]
        },
        "ApplicationStatusResult": {
          "type": "object",
          "properties": {
            "application": {
              "$ref": "#/definitions/StatusResult"
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "units": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/StatusResult"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "application",
            "units"
          ]
        },
        "ApplicationStatusResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ApplicationStatusResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "BoolResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "BoolResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/BoolResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "BytesResult": {
          "type": "object",
          "properties": {
            "result": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "CharmRelation": {
          "type": "object",
          "properties": {
            "interface": {
              "type": "string"
            },
            "limit": {
              "type": "integer"
            },
            "name": {
              "type": "string"
            },
            "optional": {
              "type": "boolean"
            },
            "role": {
              "type": "string"
            },
            "scope": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "role",
            "interface",
            "optional",
            "limit",
            "scope"
          ]
        },
        "CharmURL": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "url"
          ]
        },
        "CharmURLs": {
          "type": "object",
          "properties": {
            "urls": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CharmURL"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "urls"
          ]
        },
        "ConfigSettingsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "settings": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "settings"
          ]
        },
        "ConfigSettingsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ConfigSettingsResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Endpoint": {
          "type": "object",
          "properties": {
            "application-name": {
              "type": "string"
            },
            "relation": {
              "$ref": "#/definitions/CharmRelation"
            }
          },
          "additionalProperties": false,
          "required": [
            "application-name",
            "relation"
          ]
        },
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "EntitiesCharmURL": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntityCharmURL"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "EntitiesPortRanges": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntityPortRange"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "EntityCharmURL": {
          "type": "object",
          "properties": {
            "charm-url": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "charm-url"
          ]
        },
        "EntityPortRange": {
          "type": "object",
          "properties": {
            "from-port": {
              "type": "integer"
            },
            "protocol": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            },
            "to-port": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "protocol",
            "from-port",
            "to-port"
          ]
        },
        "EntityStatusArgs": {
          "type": "object",
          "properties": {
            "data": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "info": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "status",
            "info",
            "data"
          ]
        },
        "EntityWorkloadVersion": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            },
            "workload-version": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "workload-version"
          ]
        },
        "EntityWorkloadVersions": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntityWorkloadVersion"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "GetLeadershipSettingsBulkResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/GetLeadershipSettingsResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "GetLeadershipSettingsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "settings": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "settings"
          ]
        },
        "HostPort": {
          "type": "object",
          "properties": {
            "Address": {
              "$ref": "#/definitions/Address"
            },
            "port": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "Address",
            "port"
          ]
        },
        "IntResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "IntResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/IntResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "LifeResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "life": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "life"
          ]
        },
        "LifeResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LifeResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "MachinePortRange": {
          "type": "object",
          "properties": {
            "port-range": {
              "$ref": "#/definitions/PortRange"
            },
            "relation-tag": {
              "type": "string"
            },
            "unit-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "unit-tag",
            "relation-tag",
            "port-range"
          ]
        },
        "MachinePortsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "ports": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MachinePortRange"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "ports"
          ]
        },
        "MachinePortsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MachinePortsResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "MergeLeadershipSettingsBulkParams": {
          "type": "object",
          "properties": {
            "params": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MergeLeadershipSettingsParam"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "params"
          ]
        },
        "MergeLeadershipSettingsParam": {
          "type": "object",
          "properties": {
            "application-tag": {
              "type": "string"
            },
            "settings": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "application-tag",
            "settings"
          ]
        },
        "MeterStatusResult": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "info": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "code",
            "info"
          ]
        },
        "MeterStatusResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MeterStatusResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Metric": {
          "type": "object",
          "properties": {
            "key": {
              "type": "string"
            },
            "time": {
              "type": "string",
              "format": "date-time"
            },
            "value": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "key",
            "value",
            "time"
          ]
        },
        "MetricBatch": {
          "type": "object",
          "properties": {
            "charm-url": {
              "type": "string"
            },
            "created": {
              "type": "string",
              "format": "date-time"
            },
            "metrics": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Metric"
              }
            },
            "uuid": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "uuid",
            "charm-url",
            "created",
            "metrics"
          ]
        },
        "MetricBatchParam": {
          "type": "object",
          "properties": {
            "batch": {
              "$ref": "#/definitions/MetricBatch"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "batch"
          ]
        },
        "MetricBatchParams": {
          "type": "object",
          "properties": {
            "batches": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MetricBatchParam"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "batches"
          ]
        },
        "ModelConfigResult": {
          "type": "object",
          "properties": {
            "config": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "config"
          ]
        },
        "ModelResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "name": {
              "type": "string"
            },
            "uuid": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "uuid"
          ]
        },
        "NetworkConfig": {
          "type": "object",
          "properties": {
            "address": {
              "type": "string"
            },
            "cidr": {
              "type": "string"
            },
            "config-type": {
              "type": "string"
            },
            "device-index": {
              "type": "integer"
            },
            "disabled": {
              "type": "boolean"
            },
            "dns-search-domains": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "dns-servers": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "gateway-address": {
              "type": "string"
            },
            "interface-name": {
              "type": "string"
            },
            "interface-type": {
              "type": "string"
            },
            "mac-address": {
              "type": "string"
            },
            "mtu": {
              "type": "integer"
            },
            "no-auto-start": {
              "type": "boolean"
            },
            "parent-interface-name": {
              "type": "string"
            },
            "provider-address-id": {
              "type": "string"
            },
            "provider-id": {
              "type": "string"
            },
            "provider-space-id": {
              "type": "string"
            },
            "provider-subnet-id": {
              "type": "string"
            },
            "provider-vlan-id": {
              "type": "string"
            },
            "vlan-tag": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "device-index",
            "mac-address",
            "cidr",
            "mtu",
            "provider-id",
            "provider-subnet-id",
            "provider-space-id",
            "provider-address-id",
            "provider-vlan-id",
            "vlan-tag",
            "interface-name",
            "parent-interface-name",
            "interface-type",
            "disabled"
          ]
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "NotifyWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NotifyWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "PortRange": {
          "type": "object",
          "properties": {
            "from-port": {
              "type": "integer"
            },
            "protocol": {
              "type": "string"
            },
            "to-port": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "from-port",
            "to-port",
            "protocol"
          ]
        },
        "RelationIds": {
          "type": "object",
          "properties": {
            "relation-ids": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "relation-ids"
          ]
        },
        "RelationResult": {
          "type": "object",
          "properties": {
            "endpoint": {
              "$ref": "#/definitions/Endpoint"
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "id": {
              "type": "integer"
            },
            "key": {
              "type": "string"
            },
            "life": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "life",
            "id",
            "key",
            "endpoint"
          ]
        },
        "RelationResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/RelationResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "RelationUnit": {
          "type": "object",
          "properties": {
            "relation": {
              "type": "string"
            },
            "unit": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "relation",
            "unit"
          ]
        },
        "RelationUnitPair": {
          "type": "object",
          "properties": {
            "local-unit": {
              "type": "string"
            },
            "relation": {
              "type": "string"
            },
            "remote-unit": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "relation",
            "local-unit",
            "remote-unit"
          ]
        },
        "RelationUnitPairs": {
          "type": "object",
          "properties": {
            "relation-unit-pairs": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/RelationUnitPair"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "relation-unit-pairs"
          ]
        },
        "RelationUnitSettings": {
          "type": "object",
          "properties": {
            "relation": {
              "type": "string"
            },
            "settings": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            },
            "unit": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "relation",
            "unit",
            "settings"
          ]
        },
        "RelationUnits": {
          "type": "object",
          "properties": {
            "relation-units": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/RelationUnit"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "relation-units"
          ]
        },
        "RelationUnitsChange": {
          "type": "object",
          "properties": {
            "changed": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "$ref": "#/definitions/UnitSettings"
                }
              }
            },
            "departed": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "changed"
          ]
        },
        "RelationUnitsSettings": {
          "type": "object",
          "properties": {
            "relation-units": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/RelationUnitSettings"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "relation-units"
          ]
        },
        "RelationUnitsWatchResult": {
          "type": "object",
          "properties": {
            "changes": {
              "$ref": "#/definitions/RelationUnitsChange"
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "watcher-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "watcher-id",
            "changes"
          ]
        },
        "RelationUnitsWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/RelationUnitsWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "ResolvedModeResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "mode": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "mode"
          ]
        },
        "ResolvedModeResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ResolvedModeResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "SetStatus": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntityStatusArgs"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "SettingsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "settings": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "settings"
          ]
        },
        "SettingsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SettingsResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "StatusResult": {
          "type": "object",
          "properties": {
            "data": {
              "type": "object",
              "patternProperties": {
                ".*": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "id": {
              "type": "string"
            },
            "info": {
              "type": "string"
            },
            "life": {
              "type": "string"
            },
            "since": {
              "type": "string",
              "format": "date-time"
            },
            "status": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "id",
            "life",
            "status",
            "info",
            "data",
            "since"
          ]
        },
        "StatusResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StatusResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "StorageAddParams": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "storage": {
              "$ref": "#/definitions/StorageConstraints"
            },
            "unit": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "unit",
            "name",
            "storage"
          ]
        },
        "StorageAttachment": {
          "type": "object",
          "properties": {
            "kind": {
              "type": "integer"
            },
            "life": {
              "type": "string"
            },
            "location": {
              "type": "string"
            },
            "owner-tag": {
              "type": "string"
            },
            "storage-tag": {
              "type": "string"
            },
            "unit-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "storage-tag",
            "owner-tag",
            "unit-tag",
            "kind",
            "location",
            "life"
          ]
        },
        "StorageAttachmentId": {
          "type": "object",
          "properties": {
            "storage-tag": {
              "type": "string"
            },
            "unit-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "storage-tag",
            "unit-tag"
          ]
        },
        "StorageAttachmentIds": {
          "type": "object",
          "properties": {
            "ids": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StorageAttachmentId"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "ids"
          ]
        },
        "StorageAttachmentIdsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/StorageAttachmentIds"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "StorageAttachmentIdsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StorageAttachmentIdsResult"
              }
            }
          },
          "additionalProperties": false
        },
        "StorageAttachmentResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/StorageAttachment"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "StorageAttachmentResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StorageAttachmentResult"
              }
            }
          },
          "additionalProperties": false
        },
        "StorageConstraints": {
          "type": "object",
          "properties": {
            "count": {
              "type": "integer"
            },
            "pool": {
              "type": "string"
            },
            "size": {
              "type": "integer"
            }
          },
          "additionalProperties": false
        },
        "StoragesAddParams": {
          "type": "object",
          "properties": {
            "storages": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StorageAddParams"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "storages"
          ]
        },
        "StringBoolResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "ok": {
              "type": "boolean"
            },
            "result": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "result",
            "ok"
          ]
        },
        "StringBoolResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StringBoolResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "StringResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "result"
          ]
        },
        "StringResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StringResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "StringsResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "StringsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StringsResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "StringsWatchResult": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "watcher-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "watcher-id"
          ]
        },
        "StringsWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StringsWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "UnitNetworkConfig": {
          "type": "object",
          "properties": {
            "binding-name": {
              "type": "string"
            },
            "unit-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "unit-tag",
            "binding-name"
          ]
        },
        "UnitNetworkConfigResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "info": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NetworkConfig"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "info"
          ]
        },
        "UnitNetworkConfigResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UnitNetworkConfigResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "UnitSettings": {
          "type": "object",
          "properties": {
            "version": {
              "type": "integer"
            }
          },
          "additionalProperties": false,
          "required": [
            "version"
          ]
        },
        "UnitsNetworkConfig": {
          "type": "object",
          "properties": {
            "args": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UnitNetworkConfig"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "args"
          ]
        }
      }
    }
  },
  {
    "Name": "Upgrader",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "DesiredVersion": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/VersionResults"
            }
          }
        },
        "SetTools": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/EntitiesVersion"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "Tools": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ToolsResults"
            }
          }
        },
        "WatchAPIVersion": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/NotifyWatchResults"
            }
          }
        }
      },
      "definitions": {
        "Binary": {
          "type": "object",
          "properties": {
            "Arch": {
              "type": "string"
            },
            "Number": {
              "$ref": "#/definitions/Number"
            },
            "Series": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "Number",
            "Series",
            "Arch"
          ]
        },
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "EntitiesVersion": {
          "type": "object",
          "properties": {
            "agent-tools": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntityVersion"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "agent-tools"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "EntityVersion": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            },
            "tools": {
              "$ref": "#/definitions/Version"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "tools"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "NotifyWatchResult": {
          "type": "object",
          "properties": {
            "NotifyWatcherId": {
              "type": "string"
            },
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false,
          "required": [
            "NotifyWatcherId"
          ]
        },
        "NotifyWatchResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/NotifyWatchResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Number": {
          "type": "object",
          "properties": {
            "Build": {
              "type": "integer"
            },
            "Major": {
              "type": "integer"
            },
            "Minor": {
              "type": "integer"
            },
            "Patch": {
              "type": "integer"
            },
            "Tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "Major",
            "Minor",
            "Tag",
            "Patch",
            "Build"
          ]
        },
        "Tools": {
          "type": "object",
          "properties": {
            "sha256": {
              "type": "string"
            },
            "size": {
              "type": "integer"
            },
            "url": {
              "type": "string"
            },
            "version": {
              "$ref": "#/definitions/Binary"
            }
          },
          "additionalProperties": false,
          "required": [
            "version",
            "url",
            "size"
          ]
        },
        "ToolsResult": {
          "type": "object",
          "properties": {
            "disable-ssl-hostname-verification": {
              "type": "boolean"
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "tools": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Tools"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "tools",
            "disable-ssl-hostname-verification"
          ]
        },
        "ToolsResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ToolsResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Version": {
          "type": "object",
          "properties": {
            "version": {
              "$ref": "#/definitions/Binary"
            }
          },
          "additionalProperties": false,
          "required": [
            "version"
          ]
        },
        "VersionResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "version": {
              "$ref": "#/definitions/Number"
            }
          },
          "additionalProperties": false
        },
        "VersionResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/VersionResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        }
      }
    }
  },
  {
    "Name": "UserManager",
    "Version": 1,
    "Schema": {
      "type": "object",
      "properties": {
        "AddUser": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/AddUsers"
            },
            "Result": {
              "$ref": "#/definitions/AddUserResults"
            }
          }
        },
        "DisableUser": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "EnableUser": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "RemoveUser": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/Entities"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "SetPassword": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/EntityPasswords"
            },
            "Result": {
              "$ref": "#/definitions/ErrorResults"
            }
          }
        },
        "UserInfo": {
          "type": "object",
          "properties": {
            "Params": {
              "$ref": "#/definitions/UserInfoRequest"
            },
            "Result": {
              "$ref": "#/definitions/UserInfoResults"
            }
          }
        }
      },
      "definitions": {
        "AddUser": {
          "type": "object",
          "properties": {
            "display-name": {
              "type": "string"
            },
            "password": {
              "type": "string"
            },
            "username": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "username",
            "display-name"
          ]
        },
        "AddUserResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "secret-key": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "AddUserResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AddUserResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "AddUsers": {
          "type": "object",
          "properties": {
            "users": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AddUser"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "users"
          ]
        },
        "Entities": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "entities"
          ]
        },
        "Entity": {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag"
          ]
        },
        "EntityPassword": {
          "type": "object",
          "properties": {
            "password": {
              "type": "string"
            },
            "tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "tag",
            "password"
          ]
        },
        "EntityPasswords": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/EntityPassword"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "changes"
          ]
        },
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "ErrorResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            }
          },
          "additionalProperties": false
        },
        "ErrorResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ErrorResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "UserInfo": {
          "type": "object",
          "properties": {
            "access": {
              "type": "string"
            },
            "created-by": {
              "type": "string"
            },
            "date-created": {
              "type": "string",
              "format": "date-time"
            },
            "disabled": {
              "type": "boolean"
            },
            "display-name": {
              "type": "string"
            },
            "last-connection": {
              "type": "string",
              "format": "date-time"
            },
            "username": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "username",
            "display-name",
            "access",
            "created-by",
            "date-created",
            "disabled"
          ]
        },
        "UserInfoRequest": {
          "type": "object",
          "properties": {
            "entities": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Entity"
              }
            },
            "include-disabled": {
              "type": "boolean"
            }
          },
          "additionalProperties": false,
          "required": [
            "entities",
            "include-disabled"
          ]
        },
        "UserInfoResult": {
          "type": "object",
          "properties": {
            "error": {
              "$ref": "#/definitions/Error"
            },
            "result": {
              "$ref": "#/definitions/UserInfo"
            }
          },
          "additionalProperties": false
        },
        "UserInfoResults": {
          "type": "object",
          "properties": {
            "results": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UserInfoResult"
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "results"
          ]
        }
      }
    }
  },
  {
    "Name": "VolumeAttachmentsWatcher",
    "Version": 2,
    "Schema": {
      "type": "object",
      "properties": {
        "Next": {
          "type": "object",
          "properties": {
            "Result": {
              "$ref": "#/definitions/MachineStorageIdsWatchResult"
            }
          }
        },
        "Stop": {
          "type": "object"
        }
      },
      "definitions": {
        "Error": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "info": {
              "$ref": "#/definitions/ErrorInfo"
            },
            "message": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "message",
            "code"
          ]
        },
        "ErrorInfo": {
          "type": "object",
          "properties": {
            "macaroon": {
              "$ref": "#/definitions/Macaroon"
            },
            "macaroon-path": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "Macaroon": {
          "type": "object",
          "additionalProperties": false
        },
        "MachineStorageId": {
          "type": "object",
          "properties": {
            "attachment-tag": {
              "type": "string"
            },
            "machine-tag": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "machine-tag",
            "attachment-tag"
          ]
        },
        "MachineStorageIdsWatchResult": {
          "type": "object",
          "properties": {
            "changes": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/MachineStorageId"
              }
            },
            "error": {
              "$ref": "#/definitions/Error"
            },
            "watcher-id": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "watcher-id",
            "changes"
          ]
        }
      }
    }
  }
]
