Regen client against juju-2.0.2
[osm/N2VC.git] / juju / client / schemas.json
index b6d58f1..1191024 100644 (file)
@@ -1,7 +1,7 @@
 [
   {
     "Name": "Action",
-    "Version": 1,
+    "Version": 2,
     "Schema": {
       "type": "object",
       "properties": {
             }
           }
         },
+        "ApplicationsCharmsActions": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/ApplicationsCharmActionsResults"
+            }
+          }
+        },
         "Cancel": {
           "type": "object",
           "properties": {
               "$ref": "#/definitions/ActionResults"
             }
           }
-        },
-        "ServicesCharmActions": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/ServicesCharmActionsResults"
-            }
-          }
         }
       },
       "definitions": {
           },
           "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": {
           },
           "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": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Entity"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "Entity": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "tag"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          "additionalProperties": false
         },
         "RunParams": {
           "type": "object",
           "properties": {
-            "Commands": {
-              "type": "string"
-            },
-            "Machines": {
+            "applications": {
               "type": "array",
               "items": {
                 "type": "string"
               }
             },
-            "Services": {
+            "commands": {
+              "type": "string"
+            },
+            "machines": {
               "type": "array",
               "items": {
                 "type": "string"
               }
             },
-            "Timeout": {
+            "timeout": {
               "type": "integer"
             },
-            "Units": {
+            "units": {
               "type": "array",
               "items": {
                 "type": "string"
           },
           "additionalProperties": false,
           "required": [
-            "Commands",
-            "Timeout",
-            "Machines",
-            "Services",
-            "Units"
+            "commands",
+            "timeout"
           ]
-        },
-        "ServiceCharmActionsResult": {
+        }
+      }
+    }
+  },
+  {
+    "Name": "Agent",
+    "Version": 2,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "ClearReboot": {
           "type": "object",
           "properties": {
-            "actions": {
-              "$ref": "#/definitions/Actions"
+            "Params": {
+              "$ref": "#/definitions/Entities"
             },
-            "error": {
-              "$ref": "#/definitions/Error"
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
+            }
+          }
+        },
+        "CloudSpec": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
             },
-            "servicetag": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/CloudSpecResults"
             }
-          },
-          "additionalProperties": false
+          }
         },
-        "ServicesCharmActionsResults": {
+        "ControllerConfig": {
           "type": "object",
           "properties": {
-            "results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ServiceCharmActionsResult"
-              }
+            "Result": {
+              "$ref": "#/definitions/ControllerConfigResult"
             }
-          },
-          "additionalProperties": false
+          }
         },
-        "caveat": {
+        "GetCloudSpec": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "Params": {
+              "$ref": "#/definitions/ModelTag"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "Result": {
+              "$ref": "#/definitions/CloudSpecResult"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
+          }
         },
-        "packet": {
+        "GetEntities": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
+            "Params": {
+              "$ref": "#/definitions/Entities"
             },
-            "start": {
-              "type": "integer"
+            "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"
             },
-            "totalLen": {
-              "type": "integer"
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "Addresser",
-    "Version": 2,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "CanDeallocateAddresses": {
+          }
+        },
+        "StateServingInfo": {
           "type": "object",
           "properties": {
             "Result": {
-              "$ref": "#/definitions/BoolResult"
+              "$ref": "#/definitions/StateServingInfo"
             }
           }
         },
-        "CleanupIPAddresses": {
+        "WatchCredentials": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
             "Result": {
-              "$ref": "#/definitions/ErrorResult"
+              "$ref": "#/definitions/NotifyWatchResults"
             }
           }
         },
-        "WatchIPAddresses": {
+        "WatchForModelConfigChanges": {
           "type": "object",
           "properties": {
             "Result": {
-              "$ref": "#/definitions/EntitiesWatchResult"
+              "$ref": "#/definitions/NotifyWatchResult"
             }
           }
         }
       },
       "definitions": {
-        "BoolResult": {
+        "AgentGetEntitiesResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "container-type": {
+              "type": "string"
+            },
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Result": {
-              "type": "boolean"
+            "jobs": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "life": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Result"
+            "life",
+            "jobs",
+            "container-type"
           ]
         },
-        "EntitiesWatchResult": {
+        "AgentGetEntitiesResults": {
           "type": "object",
           "properties": {
-            "Changes": {
+            "entities": {
               "type": "array",
               "items": {
-                "type": "string"
+                "$ref": "#/definitions/AgentGetEntitiesResult"
               }
-            },
-            "EntityWatcherId": {
-              "type": "string"
-            },
-            "Error": {
-              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "EntityWatcherId",
-            "Changes",
-            "Error"
+            "entities"
           ]
         },
-        "Error": {
+        "CloudCredential": {
           "type": "object",
           "properties": {
-            "Code": {
-              "type": "string"
-            },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "attrs": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "string"
+                }
+              }
             },
-            "Message": {
+            "auth-type": {
               "type": "string"
+            },
+            "redacted": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "auth-type"
           ]
         },
-        "ErrorInfo": {
+        "CloudSpec": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
+            "credential": {
+              "$ref": "#/definitions/CloudCredential"
             },
-            "MacaroonPath": {
+            "endpoint": {
               "type": "string"
-            }
-          },
-          "additionalProperties": false
-        },
-        "ErrorResult": {
-          "type": "object",
-          "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
-        },
-        "Macaroon": {
-          "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
             },
-            "id": {
-              "$ref": "#/definitions/packet"
+            "identity-endpoint": {
+              "type": "string"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "name": {
+              "type": "string"
             },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
+            "region": {
+              "type": "string"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "storage-endpoint": {
+              "type": "string"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "type": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "type",
+            "name"
           ]
         },
-        "packet": {
+        "CloudSpecResult": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "totalLen": {
-              "type": "integer"
+            "result": {
+              "$ref": "#/definitions/CloudSpec"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "Agent",
-    "Version": 2,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "ClearReboot": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
-            }
-          }
-        },
-        "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"
-            }
-          }
+          "additionalProperties": false
         },
-        "WatchForModelConfigChanges": {
-          "type": "object",
-          "properties": {
-            "Result": {
-              "$ref": "#/definitions/NotifyWatchResult"
-            }
-          }
-        }
-      },
-      "definitions": {
-        "AgentGetEntitiesResult": {
+        "CloudSpecResults": {
           "type": "object",
           "properties": {
-            "ContainerType": {
-              "type": "string"
-            },
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "Jobs": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "string"
+                "$ref": "#/definitions/CloudSpecResult"
               }
-            },
-            "Life": {
-              "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Life",
-            "Jobs",
-            "ContainerType",
-            "Error"
-          ]
+          "additionalProperties": false
         },
-        "AgentGetEntitiesResults": {
+        "ControllerConfigResult": {
           "type": "object",
           "properties": {
-            "Entities": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/AgentGetEntitiesResult"
+            "config": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "config"
           ]
         },
         "Entities": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Entity"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "Entity": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "tag"
           ]
         },
         "EntityPassword": {
           "type": "object",
           "properties": {
-            "Password": {
+            "password": {
               "type": "string"
             },
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag",
-            "Password"
+            "tag",
+            "password"
           ]
         },
         "EntityPasswords": {
           "type": "object",
           "properties": {
-            "Changes": {
+            "changes": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/EntityPassword"
           },
           "additionalProperties": false,
           "required": [
-            "Changes"
+            "changes"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
         "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ErrorResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "IsMasterResult": {
           "type": "object",
           "properties": {
-            "Master": {
+            "master": {
               "type": "boolean"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Master"
+            "master"
           ]
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          "additionalProperties": false
         },
         "ModelConfigResult": {
           "type": "object",
           "properties": {
-            "Config": {
+            "config": {
               "type": "object",
               "patternProperties": {
                 ".*": {
           },
           "additionalProperties": false,
           "required": [
-            "Config"
+            "config"
           ]
         },
+        "ModelTag": {
+          "type": "object",
+          "additionalProperties": false
+        },
         "NotifyWatchResult": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
             "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": [
-            "NotifyWatcherId",
-            "Error"
+            "results"
           ]
         },
         "StateServingInfo": {
           "type": "object",
           "properties": {
-            "APIPort": {
+            "api-port": {
               "type": "integer"
             },
-            "CAPrivateKey": {
+            "ca-private-key": {
               "type": "string"
             },
-            "Cert": {
+            "cert": {
               "type": "string"
             },
-            "PrivateKey": {
+            "private-key": {
               "type": "string"
             },
-            "SharedSecret": {
+            "shared-secret": {
               "type": "string"
             },
-            "StatePort": {
+            "state-port": {
               "type": "integer"
             },
-            "SystemIdentity": {
+            "system-identity": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "APIPort",
-            "StatePort",
-            "Cert",
-            "PrivateKey",
-            "CAPrivateKey",
-            "SharedSecret",
-            "SystemIdentity"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "api-port",
+            "state-port",
+            "cert",
+            "private-key",
+            "ca-private-key",
+            "shared-secret",
+            "system-identity"
           ]
         }
       }
         "AllWatcherNextResults": {
           "type": "object",
           "properties": {
-            "Deltas": {
+            "deltas": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Delta"
           },
           "additionalProperties": false,
           "required": [
-            "Deltas"
+            "deltas"
           ]
         },
         "Delta": {
           "type": "object",
           "properties": {
-            "Entity": {
+            "entity": {
               "type": "object",
               "additionalProperties": true
             },
-            "Removed": {
+            "removed": {
               "type": "boolean"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Removed",
-            "Entity"
+            "removed",
+            "entity"
           ]
         }
       }
         "AllWatcherNextResults": {
           "type": "object",
           "properties": {
-            "Deltas": {
+            "deltas": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Delta"
           },
           "additionalProperties": false,
           "required": [
-            "Deltas"
+            "deltas"
           ]
         },
         "Delta": {
           "type": "object",
           "properties": {
-            "Entity": {
+            "entity": {
               "type": "object",
               "additionalProperties": true
             },
-            "Removed": {
+            "removed": {
               "type": "boolean"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Removed",
-            "Entity"
+            "removed",
+            "entity"
           ]
         }
       }
         "AnnotationsGetResult": {
           "type": "object",
           "properties": {
-            "Annotations": {
+            "annotations": {
               "type": "object",
               "patternProperties": {
                 ".*": {
                 }
               }
             },
-            "EntityTag": {
+            "entity": {
               "type": "string"
             },
-            "Error": {
+            "error": {
               "$ref": "#/definitions/ErrorResult"
             }
           },
           "additionalProperties": false,
           "required": [
-            "EntityTag",
-            "Annotations",
-            "Error"
+            "entity",
+            "annotations"
           ]
         },
         "AnnotationsGetResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/AnnotationsGetResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "AnnotationsSet": {
           "type": "object",
           "properties": {
-            "Annotations": {
+            "annotations": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/EntityAnnotations"
           },
           "additionalProperties": false,
           "required": [
-            "Annotations"
+            "annotations"
           ]
         },
         "Entities": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Entity"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "Entity": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "tag"
           ]
         },
         "EntityAnnotations": {
           "type": "object",
           "properties": {
-            "Annotations": {
+            "annotations": {
               "type": "object",
               "patternProperties": {
                 ".*": {
                 }
               }
             },
-            "EntityTag": {
+            "entity": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "EntityTag",
-            "Annotations"
+            "entity",
+            "annotations"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
         "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ErrorResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        }
+      }
+    }
+  },
+  {
+    "Name": "Application",
+    "Version": 3,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "AddRelation": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "Params": {
+              "$ref": "#/definitions/AddRelation"
             },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "Result": {
+              "$ref": "#/definitions/AddRelationResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          }
         },
-        "caveat": {
+        "AddUnits": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "Params": {
+              "$ref": "#/definitions/AddApplicationUnits"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "Result": {
+              "$ref": "#/definitions/AddApplicationUnitsResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
+          }
         },
-        "packet": {
+        "CharmRelations": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
+            "Params": {
+              "$ref": "#/definitions/ApplicationCharmRelations"
             },
-            "start": {
-              "type": "integer"
+            "Result": {
+              "$ref": "#/definitions/ApplicationCharmRelationsResults"
+            }
+          }
+        },
+        "Deploy": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/ApplicationsDeploy"
             },
-            "totalLen": {
-              "type": "integer"
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "Backups",
-    "Version": 1,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "Create": {
+          }
+        },
+        "Destroy": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/BackupsCreateArgs"
+              "$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/BackupsMetadataResult"
+              "$ref": "#/definitions/ApplicationGetResults"
             }
           }
         },
-        "FinishRestore": {
-          "type": "object"
+        "GetCharmURL": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/ApplicationGet"
+            },
+            "Result": {
+              "$ref": "#/definitions/StringResult"
+            }
+          }
         },
-        "Info": {
+        "GetConstraints": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/BackupsInfoArgs"
+              "$ref": "#/definitions/GetApplicationConstraints"
             },
             "Result": {
-              "$ref": "#/definitions/BackupsMetadataResult"
+              "$ref": "#/definitions/GetConstraintsResults"
             }
           }
         },
-        "List": {
+        "Set": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/BackupsListArgs"
+              "$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/BackupsListResult"
+              "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "PrepareRestore": {
-          "type": "object"
+        "Unexpose": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/ApplicationUnexpose"
+            }
+          }
         },
-        "Remove": {
+        "Unset": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/BackupsRemoveArgs"
+              "$ref": "#/definitions/ApplicationUnset"
             }
           }
         },
-        "Restore": {
+        "Update": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/RestoreArgs"
+              "$ref": "#/definitions/ApplicationUpdate"
             }
           }
         }
       },
       "definitions": {
-        "BackupsCreateArgs": {
+        "AddApplicationUnits": {
           "type": "object",
           "properties": {
-            "Notes": {
+            "application": {
               "type": "string"
+            },
+            "num-units": {
+              "type": "integer"
+            },
+            "placement": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Placement"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Notes"
+            "application",
+            "num-units",
+            "placement"
           ]
         },
-        "BackupsInfoArgs": {
+        "AddApplicationUnitsResults": {
           "type": "object",
           "properties": {
-            "ID": {
-              "type": "string"
+            "units": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "ID"
+            "units"
           ]
         },
-        "BackupsListArgs": {
+        "AddRelation": {
           "type": "object",
-          "additionalProperties": false
+          "properties": {
+            "endpoints": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "endpoints"
+          ]
         },
-        "BackupsListResult": {
+        "AddRelationResults": {
           "type": "object",
           "properties": {
-            "List": {
+            "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": {
-                "$ref": "#/definitions/BackupsMetadataResult"
+                "type": "string"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "List"
+            "charm-relations"
           ]
         },
-        "BackupsMetadataResult": {
+        "ApplicationDeploy": {
           "type": "object",
           "properties": {
-            "CACert": {
+            "application": {
               "type": "string"
             },
-            "CAPrivateKey": {
+            "channel": {
               "type": "string"
             },
-            "Checksum": {
+            "charm-url": {
               "type": "string"
             },
-            "ChecksumFormat": {
+            "config": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "string"
+                }
+              }
+            },
+            "config-yaml": {
               "type": "string"
             },
-            "Finished": {
-              "type": "string",
-              "format": "date-time"
+            "constraints": {
+              "$ref": "#/definitions/Value"
             },
-            "Hostname": {
-              "type": "string"
+            "endpoint-bindings": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "string"
+                }
+              }
             },
-            "ID": {
-              "type": "string"
+            "num-units": {
+              "type": "integer"
             },
-            "Machine": {
-              "type": "string"
+            "placement": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Placement"
+              }
             },
-            "Model": {
-              "type": "string"
+            "resources": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "string"
+                }
+              }
             },
-            "Notes": {
+            "series": {
               "type": "string"
             },
-            "Size": {
-              "type": "integer"
-            },
-            "Started": {
-              "type": "string",
-              "format": "date-time"
-            },
-            "Stored": {
-              "type": "string",
-              "format": "date-time"
-            },
-            "Version": {
-              "$ref": "#/definitions/Number"
+            "storage": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/Constraints"
+                }
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "ID",
-            "Checksum",
-            "ChecksumFormat",
-            "Size",
-            "Stored",
-            "Started",
-            "Finished",
-            "Notes",
-            "Model",
-            "Machine",
-            "Hostname",
-            "Version",
-            "CACert",
-            "CAPrivateKey"
+            "application",
+            "series",
+            "charm-url",
+            "channel",
+            "num-units",
+            "config-yaml",
+            "constraints"
           ]
         },
-        "BackupsRemoveArgs": {
+        "ApplicationDestroy": {
           "type": "object",
           "properties": {
-            "ID": {
+            "application": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "ID"
+            "application"
           ]
         },
-        "Number": {
+        "ApplicationExpose": {
           "type": "object",
           "properties": {
-            "Build": {
-              "type": "integer"
-            },
-            "Major": {
-              "type": "integer"
-            },
-            "Minor": {
-              "type": "integer"
-            },
-            "Patch": {
-              "type": "integer"
-            },
-            "Tag": {
+            "application": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Major",
-            "Minor",
-            "Tag",
-            "Patch",
-            "Build"
+            "application"
           ]
         },
-        "RestoreArgs": {
+        "ApplicationGet": {
           "type": "object",
           "properties": {
-            "BackupId": {
+            "application": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "BackupId"
+            "application"
           ]
-        }
-      }
-    }
-  },
-  {
-    "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": {
+        "ApplicationGetResults": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/BlockSwitchParams"
-            },
-            "Result": {
-              "$ref": "#/definitions/ErrorResult"
-            }
-          }
-        }
-      },
-      "definitions": {
-        "Block": {
-          "type": "object",
-          "properties": {
-            "id": {
+            "application": {
               "type": "string"
             },
-            "message": {
+            "charm": {
               "type": "string"
             },
-            "tag": {
-              "type": "string"
+            "config": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
             },
-            "type": {
+            "constraints": {
+              "$ref": "#/definitions/Value"
+            },
+            "series": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "id",
-            "tag",
-            "type"
+            "application",
+            "charm",
+            "config",
+            "constraints",
+            "series"
           ]
         },
-        "BlockResult": {
+        "ApplicationMetricCredential": {
           "type": "object",
           "properties": {
-            "error": {
-              "$ref": "#/definitions/Error"
+            "application": {
+              "type": "string"
             },
-            "result": {
-              "$ref": "#/definitions/Block"
+            "metrics-credentials": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "result"
+            "application",
+            "metrics-credentials"
           ]
         },
-        "BlockResults": {
+        "ApplicationMetricCredentials": {
           "type": "object",
           "properties": {
-            "results": {
+            "creds": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/BlockResult"
+                "$ref": "#/definitions/ApplicationMetricCredential"
               }
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "creds"
+          ]
         },
-        "BlockSwitchParams": {
+        "ApplicationSet": {
           "type": "object",
           "properties": {
-            "message": {
+            "application": {
               "type": "string"
             },
-            "type": {
-              "type": "string"
+            "options": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "string"
+                }
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "type"
+            "application",
+            "options"
           ]
         },
-        "Error": {
+        "ApplicationSetCharm": {
           "type": "object",
           "properties": {
-            "Code": {
+            "application": {
               "type": "string"
             },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "channel": {
+              "type": "string"
+            },
+            "charm-url": {
+              "type": "string"
+            },
+            "config-settings": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "string"
+                }
+              }
             },
-            "Message": {
+            "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": [
-            "Message",
-            "Code"
+            "application",
+            "charm-url",
+            "channel",
+            "force-units",
+            "force-series"
           ]
         },
-        "ErrorInfo": {
+        "ApplicationUnexpose": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
-            },
-            "MacaroonPath": {
+            "application": {
               "type": "string"
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "application"
+          ]
         },
-        "ErrorResult": {
+        "ApplicationUnset": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "application": {
+              "type": "string"
+            },
+            "options": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error"
+            "application",
+            "options"
           ]
         },
-        "Macaroon": {
+        "ApplicationUpdate": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
+            "application": {
+              "type": "string"
             },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "charm-url": {
+              "type": "string"
             },
-            "id": {
-              "$ref": "#/definitions/packet"
+            "constraints": {
+              "$ref": "#/definitions/Value"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "force-charm-url": {
+              "type": "boolean"
             },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
+            "force-series": {
+              "type": "boolean"
+            },
+            "min-units": {
+              "type": "integer"
+            },
+            "settings": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "string"
+                }
               }
+            },
+            "settings-yaml": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "application",
+            "charm-url",
+            "force-charm-url",
+            "force-series",
+            "settings-yaml"
           ]
         },
-        "caveat": {
+        "ApplicationsDeploy": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "applications": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ApplicationDeploy"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "applications"
           ]
         },
-        "packet": {
+        "CharmRelation": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
+            "interface": {
+              "type": "string"
             },
-            "start": {
+            "limit": {
               "type": "integer"
             },
-            "totalLen": {
-              "type": "integer"
+            "name": {
+              "type": "string"
+            },
+            "optional": {
+              "type": "boolean"
+            },
+            "role": {
+              "type": "string"
+            },
+            "scope": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "name",
+            "role",
+            "interface",
+            "optional",
+            "limit",
+            "scope"
           ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "CharmRevisionUpdater",
-    "Version": 1,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "UpdateLatestRevisions": {
+        },
+        "Constraints": {
           "type": "object",
           "properties": {
-            "Result": {
-              "$ref": "#/definitions/ErrorResult"
+            "Count": {
+              "type": "integer"
+            },
+            "Pool": {
+              "type": "string"
+            },
+            "Size": {
+              "type": "integer"
             }
-          }
-        }
-      },
-      "definitions": {
+          },
+          "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": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
-        "Macaroon": {
+        "ErrorResults": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/ErrorResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "results"
           ]
         },
-        "caveat": {
+        "GetApplicationConstraints": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "application": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "application"
           ]
         },
-        "packet": {
+        "GetConstraintsResults": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
+            "constraints": {
+              "$ref": "#/definitions/Value"
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "constraints"
           ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "Charms",
-    "Version": 2,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "CharmInfo": {
+        },
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "Placement": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/CharmInfo"
+            "directive": {
+              "type": "string"
             },
-            "Result": {
-              "$ref": "#/definitions/CharmInfo"
+            "scope": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "scope",
+            "directive"
+          ]
         },
-        "IsMetered": {
+        "SetConstraints": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/CharmInfo"
+            "application": {
+              "type": "string"
             },
-            "Result": {
-              "$ref": "#/definitions/IsMeteredResult"
+            "constraints": {
+              "$ref": "#/definitions/Value"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "application",
+            "constraints"
+          ]
         },
-        "List": {
+        "StorageConstraints": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/CharmsList"
+            "count": {
+              "type": "integer"
             },
-            "Result": {
-              "$ref": "#/definitions/CharmsListResult"
+            "pool": {
+              "type": "string"
+            },
+            "size": {
+              "type": "integer"
             }
-          }
-        }
-      },
-      "definitions": {
-        "CharmInfo": {
+          },
+          "additionalProperties": false
+        },
+        "StringResult": {
           "type": "object",
           "properties": {
-            "CharmURL": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "result": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "CharmURL"
+            "result"
           ]
         },
-        "CharmsList": {
+        "Value": {
           "type": "object",
           "properties": {
-            "Names": {
+            "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"
               }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Names"
-          ]
-        },
-        "CharmsListResult": {
-          "type": "object",
-          "properties": {
-            "CharmURLs": {
+            },
+            "tags": {
               "type": "array",
               "items": {
                 "type": "string"
               }
+            },
+            "virt-type": {
+              "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "CharmURLs"
-          ]
-        },
-        "IsMeteredResult": {
-          "type": "object",
-          "properties": {
-            "Metered": {
-              "type": "boolean"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Metered"
-          ]
+          "additionalProperties": false
         }
       }
     }
   },
   {
-    "Name": "Cleaner",
-    "Version": 2,
+    "Name": "ApplicationRelationsWatcher",
+    "Version": 1,
     "Schema": {
       "type": "object",
       "properties": {
-        "Cleanup": {
-          "type": "object"
-        },
-        "WatchCleanups": {
+        "Next": {
           "type": "object",
           "properties": {
             "Result": {
-              "$ref": "#/definitions/NotifyWatchResult"
+              "$ref": "#/definitions/ApplicationRelationsWatchResult"
             }
           }
+        },
+        "Stop": {
+          "type": "object"
         }
       },
       "definitions": {
-        "Error": {
+        "ApplicationRelationsChange": {
+          "type": "object",
+          "properties": {
+            "changed": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/RelationChange"
+              }
+            },
+            "removed": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              }
+            }
+          },
+          "additionalProperties": false
+        },
+        "ApplicationRelationsWatchResult": {
           "type": "object",
           "properties": {
-            "Code": {
+            "ApplicationRelationsWatcherId": {
               "type": "string"
             },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "changes": {
+              "$ref": "#/definitions/ApplicationRelationsChange"
             },
-            "Message": {
-              "type": "string"
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "ApplicationRelationsWatcherId"
           ]
         },
-        "ErrorInfo": {
+        "Error": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
-            },
-            "MacaroonPath": {
+            "code": {
               "type": "string"
-            }
-          },
-          "additionalProperties": false
-        },
-        "Macaroon": {
-          "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "message": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "message",
+            "code"
           ]
         },
-        "NotifyWatchResult": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "NotifyWatcherId": {
+            "macaroon-path": {
               "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "NotifyWatcherId",
-            "Error"
-          ]
+          "additionalProperties": false
+        },
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
         },
-        "caveat": {
+        "RelationChange": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
+            "changedunits": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/RelationUnitChange"
+                }
+              }
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "departedunits": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "id": {
+              "type": "integer"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "life": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "id",
+            "life"
           ]
         },
-        "packet": {
+        "RelationUnitChange": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
+            "settings": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
+          "additionalProperties": false
         }
       }
     }
   },
   {
-    "Name": "Client",
+    "Name": "ApplicationScaler",
     "Version": 1,
     "Schema": {
       "type": "object",
       "properties": {
-        "APIHostPorts": {
+        "Rescale": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
             "Result": {
-              "$ref": "#/definitions/APIHostPortsResult"
+              "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "AbortCurrentUpgrade": {
-          "type": "object"
-        },
-        "AddCharm": {
+        "Watch": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/AddCharm"
+            "Result": {
+              "$ref": "#/definitions/StringsWatchResult"
             }
           }
-        },
-        "AddCharmWithAuthorization": {
+        }
+      },
+      "definitions": {
+        "Entities": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/AddCharmWithAuthorization"
+            "entities": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Entity"
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "entities"
+          ]
         },
-        "AddMachines": {
+        "Entity": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/AddMachines"
-            },
-            "Result": {
-              "$ref": "#/definitions/AddMachinesResults"
+            "tag": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "tag"
+          ]
         },
-        "AddMachinesV2": {
+        "Error": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/AddMachines"
+            "code": {
+              "type": "string"
             },
-            "Result": {
-              "$ref": "#/definitions/AddMachinesResults"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
+            },
+            "message": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "message",
+            "code"
+          ]
         },
-        "AgentVersion": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Result": {
-              "$ref": "#/definitions/AgentVersionResult"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
+            },
+            "macaroon-path": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false
         },
-        "CharmInfo": {
+        "ErrorResult": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/CharmInfo"
-            },
-            "Result": {
-              "$ref": "#/definitions/CharmInfo"
+            "error": {
+              "$ref": "#/definitions/Error"
             }
-          }
+          },
+          "additionalProperties": false
         },
-        "DestroyMachines": {
+        "ErrorResults": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/DestroyMachines"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ErrorResult"
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
         },
-        "DestroyModel": {
-          "type": "object"
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
         },
-        "FindTools": {
+        "StringsWatchResult": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/FindToolsParams"
+            "changes": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             },
-            "Result": {
-              "$ref": "#/definitions/FindToolsResult"
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "watcher-id": {
+              "type": "string"
             }
-          }
-        },
-        "FullStatus": {
+          },
+          "additionalProperties": false,
+          "required": [
+            "watcher-id"
+          ]
+        }
+      }
+    }
+  },
+  {
+    "Name": "Backups",
+    "Version": 1,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "Create": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/StatusParams"
+              "$ref": "#/definitions/BackupsCreateArgs"
             },
             "Result": {
-              "$ref": "#/definitions/FullStatus"
+              "$ref": "#/definitions/BackupsMetadataResult"
             }
           }
         },
-        "GetBundleChanges": {
+        "FinishRestore": {
+          "type": "object"
+        },
+        "Info": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/GetBundleChangesParams"
+              "$ref": "#/definitions/BackupsInfoArgs"
             },
             "Result": {
-              "$ref": "#/definitions/GetBundleChangesResults"
+              "$ref": "#/definitions/BackupsMetadataResult"
             }
           }
         },
-        "GetModelConstraints": {
+        "List": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/BackupsListArgs"
+            },
             "Result": {
-              "$ref": "#/definitions/GetConstraintsResults"
+              "$ref": "#/definitions/BackupsListResult"
             }
           }
         },
-        "InjectMachines": {
+        "PrepareRestore": {
+          "type": "object"
+        },
+        "Remove": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/AddMachines"
-            },
-            "Result": {
-              "$ref": "#/definitions/AddMachinesResults"
+              "$ref": "#/definitions/BackupsRemoveArgs"
             }
           }
         },
-        "ModelGet": {
+        "Restore": {
           "type": "object",
           "properties": {
-            "Result": {
-              "$ref": "#/definitions/ModelConfigResults"
+            "Params": {
+              "$ref": "#/definitions/RestoreArgs"
             }
           }
-        },
-        "ModelInfo": {
-          "type": "object",
-          "properties": {
-            "Result": {
-              "$ref": "#/definitions/ModelInfo"
-            }
-          }
-        },
-        "ModelSet": {
+        }
+      },
+      "definitions": {
+        "BackupsCreateArgs": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/ModelSet"
+            "notes": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "notes"
+          ]
         },
-        "ModelUnset": {
+        "BackupsInfoArgs": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/ModelUnset"
+            "id": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "id"
+          ]
         },
-        "ModelUserInfo": {
+        "BackupsListArgs": {
           "type": "object",
-          "properties": {
-            "Result": {
-              "$ref": "#/definitions/ModelUserInfoResults"
-            }
-          }
+          "additionalProperties": false
         },
-        "PrivateAddress": {
+        "BackupsListResult": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/PrivateAddress"
-            },
-            "Result": {
-              "$ref": "#/definitions/PrivateAddressResults"
+            "list": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/BackupsMetadataResult"
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "list"
+          ]
         },
-        "ProvisioningScript": {
+        "BackupsMetadataResult": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/ProvisioningScriptParams"
+            "ca-cert": {
+              "type": "string"
             },
-            "Result": {
-              "$ref": "#/definitions/ProvisioningScriptResult"
-            }
-          }
-        },
-        "PublicAddress": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/PublicAddress"
+            "ca-private-key": {
+              "type": "string"
             },
-            "Result": {
-              "$ref": "#/definitions/PublicAddressResults"
-            }
-          }
-        },
-        "ResolveCharms": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/ResolveCharms"
+            "checksum": {
+              "type": "string"
             },
-            "Result": {
-              "$ref": "#/definitions/ResolveCharmResults"
+            "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"
+          ]
         },
-        "Resolved": {
+        "BackupsRemoveArgs": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Resolved"
+            "id": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "id"
+          ]
         },
-        "RetryProvisioning": {
+        "Number": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
+            "Build": {
+              "type": "integer"
             },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
+            "Major": {
+              "type": "integer"
+            },
+            "Minor": {
+              "type": "integer"
+            },
+            "Patch": {
+              "type": "integer"
+            },
+            "Tag": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "Major",
+            "Minor",
+            "Tag",
+            "Patch",
+            "Build"
+          ]
         },
-        "SetModelAgentVersion": {
+        "RestoreArgs": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/SetModelAgentVersion"
+            "backup-id": {
+              "type": "string"
             }
-          }
-        },
-        "SetModelConstraints": {
+          },
+          "additionalProperties": false,
+          "required": [
+            "backup-id"
+          ]
+        }
+      }
+    }
+  },
+  {
+    "Name": "Block",
+    "Version": 2,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "List": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/SetConstraints"
+            "Result": {
+              "$ref": "#/definitions/BlockResults"
             }
           }
         },
-        "StatusHistory": {
+        "SwitchBlockOff": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/StatusHistoryArgs"
+              "$ref": "#/definitions/BlockSwitchParams"
             },
             "Result": {
-              "$ref": "#/definitions/StatusHistoryResults"
+              "$ref": "#/definitions/ErrorResult"
             }
           }
         },
-        "WatchAll": {
+        "SwitchBlockOn": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/BlockSwitchParams"
+            },
             "Result": {
-              "$ref": "#/definitions/AllWatcherId"
+              "$ref": "#/definitions/ErrorResult"
             }
           }
         }
       },
       "definitions": {
-        "APIHostPortsResult": {
-          "type": "object",
-          "properties": {
-            "Servers": {
-              "type": "array",
-              "items": {
-                "type": "array",
-                "items": {
-                  "$ref": "#/definitions/HostPort"
-                }
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Servers"
-          ]
-        },
-        "AddCharm": {
+        "Block": {
           "type": "object",
           "properties": {
-            "Channel": {
+            "id": {
+              "type": "string"
+            },
+            "message": {
+              "type": "string"
+            },
+            "tag": {
               "type": "string"
             },
-            "URL": {
+            "type": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "URL",
-            "Channel"
+            "id",
+            "tag",
+            "type"
           ]
         },
-        "AddCharmWithAuthorization": {
+        "BlockResult": {
           "type": "object",
           "properties": {
-            "Channel": {
-              "type": "string"
-            },
-            "CharmStoreMacaroon": {
-              "$ref": "#/definitions/Macaroon"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "URL": {
-              "type": "string"
+            "result": {
+              "$ref": "#/definitions/Block"
             }
           },
           "additionalProperties": false,
           "required": [
-            "URL",
-            "Channel",
-            "CharmStoreMacaroon"
+            "result"
           ]
         },
-        "AddMachineParams": {
+        "BlockResults": {
           "type": "object",
           "properties": {
-            "Addrs": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Address"
-              }
-            },
-            "Constraints": {
-              "$ref": "#/definitions/Value"
-            },
-            "ContainerType": {
-              "type": "string"
-            },
-            "Disks": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/Constraints"
-              }
-            },
-            "HardwareCharacteristics": {
-              "$ref": "#/definitions/HardwareCharacteristics"
-            },
-            "InstanceId": {
-              "type": "string"
-            },
-            "Jobs": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "Nonce": {
-              "type": "string"
-            },
-            "ParentId": {
-              "type": "string"
-            },
-            "Placement": {
-              "$ref": "#/definitions/Placement"
-            },
-            "Series": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Series",
-            "Constraints",
-            "Jobs",
-            "Disks",
-            "Placement",
-            "ParentId",
-            "ContainerType",
-            "InstanceId",
-            "Nonce",
-            "HardwareCharacteristics",
-            "Addrs"
-          ]
-        },
-        "AddMachines": {
-          "type": "object",
-          "properties": {
-            "MachineParams": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/AddMachineParams"
+                "$ref": "#/definitions/BlockResult"
               }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "MachineParams"
-          ]
+          "additionalProperties": false
         },
-        "AddMachinesResult": {
+        "BlockSwitchParams": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "message": {
+              "type": "string"
             },
-            "Machine": {
+            "type": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Machine",
-            "Error"
-          ]
-        },
-        "AddMachinesResults": {
-          "type": "object",
-          "properties": {
-            "Machines": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/AddMachinesResult"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Machines"
+            "type"
           ]
         },
-        "Address": {
+        "Error": {
           "type": "object",
           "properties": {
-            "Scope": {
-              "type": "string"
-            },
-            "SpaceName": {
+            "code": {
               "type": "string"
             },
-            "Type": {
-              "type": "string"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "Value": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Value",
-            "Type",
-            "Scope"
+            "message",
+            "code"
           ]
         },
-        "AgentVersionResult": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Version": {
-              "$ref": "#/definitions/Number"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
+            },
+            "macaroon-path": {
+              "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Version"
-          ]
+          "additionalProperties": false
         },
-        "AllWatcherId": {
+        "ErrorResult": {
           "type": "object",
           "properties": {
-            "AllWatcherId": {
-              "type": "string"
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "AllWatcherId"
-          ]
+          "additionalProperties": false
         },
-        "Binary": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        }
+      }
+    }
+  },
+  {
+    "Name": "Bundle",
+    "Version": 1,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "GetChanges": {
           "type": "object",
           "properties": {
-            "Arch": {
-              "type": "string"
-            },
-            "Number": {
-              "$ref": "#/definitions/Number"
+            "Params": {
+              "$ref": "#/definitions/BundleChangesParams"
             },
-            "Series": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/BundleChangesResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Number",
-            "Series",
-            "Arch"
-          ]
-        },
-        "BundleChangesChange": {
+          }
+        }
+      },
+      "definitions": {
+        "BundleChange": {
           "type": "object",
           "properties": {
             "args": {
             "requires"
           ]
         },
-        "CharmInfo": {
-          "type": "object",
-          "properties": {
-            "CharmURL": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "CharmURL"
-          ]
-        },
-        "Constraints": {
+        "BundleChangesParams": {
           "type": "object",
           "properties": {
-            "Count": {
-              "type": "integer"
-            },
-            "Pool": {
+            "yaml": {
               "type": "string"
-            },
-            "Size": {
-              "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Pool",
-            "Size",
-            "Count"
+            "yaml"
           ]
         },
-        "DestroyMachines": {
+        "BundleChangesResults": {
           "type": "object",
           "properties": {
-            "Force": {
-              "type": "boolean"
+            "changes": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/BundleChange"
+              }
             },
-            "MachineNames": {
+            "errors": {
               "type": "array",
               "items": {
                 "type": "string"
               }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "MachineNames",
-            "Force"
-          ]
-        },
-        "DetailedStatus": {
+          "additionalProperties": false
+        }
+      }
+    }
+  },
+  {
+    "Name": "CharmRevisionUpdater",
+    "Version": 2,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "UpdateLatestRevisions": {
           "type": "object",
           "properties": {
-            "Data": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
-              }
-            },
-            "Err": {
-              "type": "object",
-              "additionalProperties": true
-            },
-            "Info": {
-              "type": "string"
-            },
-            "Kind": {
-              "type": "string"
-            },
-            "Life": {
+            "Result": {
+              "$ref": "#/definitions/ErrorResult"
+            }
+          }
+        }
+      },
+      "definitions": {
+        "Error": {
+          "type": "object",
+          "properties": {
+            "code": {
               "type": "string"
             },
-            "Since": {
-              "type": "string",
-              "format": "date-time"
-            },
-            "Status": {
-              "type": "string"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "Version": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Status",
-            "Info",
-            "Data",
-            "Since",
-            "Kind",
-            "Version",
-            "Life",
-            "Err"
+            "message",
+            "code"
           ]
         },
-        "EndpointStatus": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Name": {
-              "type": "string"
-            },
-            "Role": {
-              "type": "string"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "ServiceName": {
+            "macaroon-path": {
               "type": "string"
-            },
-            "Subordinate": {
-              "type": "boolean"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "ServiceName",
-            "Name",
-            "Role",
-            "Subordinate"
-          ]
+          "additionalProperties": false
         },
-        "Entities": {
+        "ErrorResult": {
           "type": "object",
           "properties": {
-            "Entities": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/Entity"
-              }
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Entities"
-          ]
+          "additionalProperties": false
         },
-        "Entity": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        }
+      }
+    }
+  },
+  {
+    "Name": "Charms",
+    "Version": 2,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "CharmInfo": {
           "type": "object",
           "properties": {
-            "Tag": {
-              "type": "string"
+            "Params": {
+              "$ref": "#/definitions/CharmURL"
+            },
+            "Result": {
+              "$ref": "#/definitions/CharmInfo"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Tag"
-          ]
+          }
         },
-        "EntityStatus": {
+        "IsMetered": {
           "type": "object",
           "properties": {
-            "Data": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
-              }
-            },
-            "Info": {
-              "type": "string"
-            },
-            "Since": {
-              "type": "string",
-              "format": "date-time"
+            "Params": {
+              "$ref": "#/definitions/CharmURL"
             },
-            "Status": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/IsMeteredResult"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Status",
-            "Info",
-            "Data",
-            "Since"
-          ]
+          }
         },
-        "Error": {
+        "List": {
           "type": "object",
           "properties": {
-            "Code": {
-              "type": "string"
-            },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "Params": {
+              "$ref": "#/definitions/CharmsList"
             },
-            "Message": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/CharmsListResult"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Message",
-            "Code"
-          ]
-        },
-        "ErrorInfo": {
+          }
+        }
+      },
+      "definitions": {
+        "CharmActionSpec": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
-            },
-            "MacaroonPath": {
+            "description": {
               "type": "string"
-            }
-          },
-          "additionalProperties": false
-        },
-        "ErrorResult": {
-          "type": "object",
-          "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            },
+            "params": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error"
+            "description",
+            "params"
           ]
         },
-        "ErrorResults": {
+        "CharmActions": {
           "type": "object",
           "properties": {
-            "Results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ErrorResult"
+            "specs": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/CharmActionSpec"
+                }
               }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Results"
-          ]
+          "additionalProperties": false
         },
-        "FindToolsParams": {
+        "CharmInfo": {
           "type": "object",
           "properties": {
-            "Arch": {
-              "type": "string"
+            "actions": {
+              "$ref": "#/definitions/CharmActions"
             },
-            "MajorVersion": {
-              "type": "integer"
+            "config": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/CharmOption"
+                }
+              }
             },
-            "MinorVersion": {
-              "type": "integer"
+            "meta": {
+              "$ref": "#/definitions/CharmMeta"
             },
-            "Number": {
-              "$ref": "#/definitions/Number"
+            "metrics": {
+              "$ref": "#/definitions/CharmMetrics"
             },
-            "Series": {
+            "revision": {
+              "type": "integer"
+            },
+            "url": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Number",
-            "MajorVersion",
-            "MinorVersion",
-            "Arch",
-            "Series"
+            "revision",
+            "url",
+            "config"
           ]
         },
-        "FindToolsResult": {
+        "CharmMeta": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "List": {
+            "categories": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Tools"
+                "type": "string"
               }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "List",
-            "Error"
-          ]
-        },
-        "FullStatus": {
-          "type": "object",
-          "properties": {
-            "AvailableVersion": {
+            },
+            "description": {
               "type": "string"
             },
-            "Machines": {
+            "extra-bindings": {
               "type": "object",
               "patternProperties": {
                 ".*": {
-                  "$ref": "#/definitions/MachineStatus"
+                  "type": "string"
                 }
               }
             },
-            "ModelName": {
+            "min-juju-version": {
               "type": "string"
             },
-            "Relations": {
+            "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": {
-                "$ref": "#/definitions/RelationStatus"
+                "type": "string"
               }
             },
-            "Services": {
+            "storage": {
               "type": "object",
               "patternProperties": {
                 ".*": {
-                  "$ref": "#/definitions/ServiceStatus"
+                  "$ref": "#/definitions/CharmStorage"
                 }
               }
+            },
+            "subordinate": {
+              "type": "boolean"
+            },
+            "summary": {
+              "type": "string"
+            },
+            "tags": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "terms": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "ModelName",
-            "AvailableVersion",
-            "Machines",
-            "Services",
-            "Relations"
+            "name",
+            "summary",
+            "description",
+            "subordinate"
           ]
         },
-        "GetBundleChangesParams": {
+        "CharmMetric": {
           "type": "object",
           "properties": {
-            "yaml": {
+            "description": {
+              "type": "string"
+            },
+            "type": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "yaml"
+            "type",
+            "description"
           ]
         },
-        "GetBundleChangesResults": {
+        "CharmMetrics": {
           "type": "object",
           "properties": {
-            "changes": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/BundleChangesChange"
+            "metrics": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/CharmMetric"
+                }
               }
             },
-            "errors": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "plan": {
+              "$ref": "#/definitions/CharmPlan"
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "metrics",
+            "plan"
+          ]
         },
-        "GetConstraintsResults": {
+        "CharmOption": {
           "type": "object",
           "properties": {
-            "Constraints": {
-              "$ref": "#/definitions/Value"
+            "default": {
+              "type": "object",
+              "additionalProperties": true
+            },
+            "description": {
+              "type": "string"
+            },
+            "type": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Constraints"
+            "type"
           ]
         },
-        "HardwareCharacteristics": {
+        "CharmPayloadClass": {
           "type": "object",
           "properties": {
-            "Arch": {
+            "name": {
               "type": "string"
             },
-            "AvailabilityZone": {
+            "type": {
               "type": "string"
-            },
-            "CpuCores": {
-              "type": "integer"
-            },
-            "CpuPower": {
-              "type": "integer"
-            },
-            "Mem": {
-              "type": "integer"
-            },
-            "RootDisk": {
-              "type": "integer"
-            },
-            "Tags": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "name",
+            "type"
+          ]
         },
-        "HostPort": {
+        "CharmPlan": {
           "type": "object",
           "properties": {
-            "Address": {
-              "$ref": "#/definitions/Address"
-            },
-            "Port": {
-              "type": "integer"
+            "required": {
+              "type": "boolean"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Address",
-            "Port"
+            "required"
           ]
         },
-        "Macaroon": {
+        "CharmRelation": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
+            "interface": {
+              "type": "string"
             },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "limit": {
+              "type": "integer"
             },
-            "id": {
-              "$ref": "#/definitions/packet"
+            "name": {
+              "type": "string"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "optional": {
+              "type": "boolean"
             },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "role": {
+              "type": "string"
+            },
+            "scope": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "name",
+            "role",
+            "interface",
+            "optional",
+            "limit",
+            "scope"
           ]
         },
-        "MachineStatus": {
+        "CharmResourceMeta": {
           "type": "object",
           "properties": {
-            "AgentStatus": {
-              "$ref": "#/definitions/DetailedStatus"
+            "description": {
+              "type": "string"
             },
-            "Containers": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "$ref": "#/definitions/MachineStatus"
-                }
-              }
+            "name": {
+              "type": "string"
             },
-            "DNSName": {
+            "path": {
               "type": "string"
             },
-            "Hardware": {
+            "type": {
               "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "name",
+            "type",
+            "path",
+            "description"
+          ]
+        },
+        "CharmStorage": {
+          "type": "object",
+          "properties": {
+            "count-max": {
+              "type": "integer"
             },
-            "HasVote": {
-              "type": "boolean"
+            "count-min": {
+              "type": "integer"
             },
-            "Id": {
+            "description": {
               "type": "string"
             },
-            "InstanceId": {
+            "location": {
               "type": "string"
             },
-            "InstanceStatus": {
-              "$ref": "#/definitions/DetailedStatus"
+            "minimum-size": {
+              "type": "integer"
             },
-            "Jobs": {
+            "name": {
+              "type": "string"
+            },
+            "properties": {
               "type": "array",
               "items": {
                 "type": "string"
               }
             },
-            "Series": {
-              "type": "string"
+            "read-only": {
+              "type": "boolean"
             },
-            "WantsVote": {
+            "shared": {
               "type": "boolean"
+            },
+            "type": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "AgentStatus",
-            "InstanceStatus",
-            "DNSName",
-            "InstanceId",
-            "Series",
-            "Id",
-            "Containers",
-            "Hardware",
-            "Jobs",
-            "HasVote",
-            "WantsVote"
+            "name",
+            "description",
+            "type",
+            "shared",
+            "read-only",
+            "count-min",
+            "count-max",
+            "minimum-size"
           ]
         },
-        "MeterStatus": {
+        "CharmURL": {
           "type": "object",
           "properties": {
-            "Color": {
-              "type": "string"
-            },
-            "Message": {
+            "url": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Color",
-            "Message"
+            "url"
           ]
         },
-        "ModelConfigResults": {
+        "CharmsList": {
           "type": "object",
           "properties": {
-            "Config": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
+            "names": {
+              "type": "array",
+              "items": {
+                "type": "string"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Config"
+            "names"
           ]
         },
-        "ModelInfo": {
+        "CharmsListResult": {
           "type": "object",
           "properties": {
-            "DefaultSeries": {
-              "type": "string"
-            },
-            "Life": {
-              "type": "string"
-            },
-            "Name": {
-              "type": "string"
-            },
-            "OwnerTag": {
-              "type": "string"
-            },
-            "ProviderType": {
-              "type": "string"
-            },
-            "ServerUUID": {
-              "type": "string"
-            },
-            "Status": {
-              "$ref": "#/definitions/EntityStatus"
-            },
-            "UUID": {
-              "type": "string"
-            },
-            "Users": {
+            "charm-urls": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ModelUserInfo"
+                "type": "string"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Name",
-            "UUID",
-            "ServerUUID",
-            "ProviderType",
-            "DefaultSeries",
-            "OwnerTag",
-            "Life",
-            "Status",
-            "Users"
+            "charm-urls"
           ]
         },
-        "ModelSet": {
+        "IsMeteredResult": {
           "type": "object",
           "properties": {
-            "Config": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
-              }
+            "metered": {
+              "type": "boolean"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Config"
+            "metered"
           ]
+        }
+      }
+    }
+  },
+  {
+    "Name": "Cleaner",
+    "Version": 2,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "Cleanup": {
+          "type": "object"
         },
-        "ModelUnset": {
+        "WatchCleanups": {
           "type": "object",
           "properties": {
-            "Keys": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "Result": {
+              "$ref": "#/definitions/NotifyWatchResult"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Keys"
-          ]
-        },
-        "ModelUserInfo": {
+          }
+        }
+      },
+      "definitions": {
+        "Error": {
           "type": "object",
           "properties": {
-            "access": {
-              "type": "string"
-            },
-            "displayname": {
+            "code": {
               "type": "string"
             },
-            "lastconnection": {
-              "type": "string",
-              "format": "date-time"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "user": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "user",
-            "displayname",
-            "lastconnection",
-            "access"
+            "message",
+            "code"
           ]
         },
-        "ModelUserInfoResult": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "error": {
-              "$ref": "#/definitions/Error"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "result": {
-              "$ref": "#/definitions/ModelUserInfo"
+            "macaroon-path": {
+              "type": "string"
             }
           },
           "additionalProperties": false
         },
-        "ModelUserInfoResults": {
+        "Macaroon": {
           "type": "object",
-          "properties": {
-            "results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ModelUserInfoResult"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "results"
-          ]
+          "additionalProperties": false
         },
-        "Number": {
+        "NotifyWatchResult": {
           "type": "object",
           "properties": {
-            "Build": {
-              "type": "integer"
-            },
-            "Major": {
-              "type": "integer"
-            },
-            "Minor": {
-              "type": "integer"
-            },
-            "Patch": {
-              "type": "integer"
-            },
-            "Tag": {
+            "NotifyWatcherId": {
               "type": "string"
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Major",
-            "Minor",
-            "Tag",
-            "Patch",
-            "Build"
+            "NotifyWatcherId"
           ]
-        },
-        "Placement": {
+        }
+      }
+    }
+  },
+  {
+    "Name": "Client",
+    "Version": 1,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "APIHostPorts": {
           "type": "object",
           "properties": {
-            "Directive": {
-              "type": "string"
-            },
-            "Scope": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/APIHostPortsResult"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Scope",
-            "Directive"
-          ]
+          }
         },
-        "PrivateAddress": {
+        "AbortCurrentUpgrade": {
+          "type": "object"
+        },
+        "AddCharm": {
           "type": "object",
           "properties": {
-            "Target": {
-              "type": "string"
+            "Params": {
+              "$ref": "#/definitions/AddCharm"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Target"
-          ]
+          }
         },
-        "PrivateAddressResults": {
+        "AddCharmWithAuthorization": {
           "type": "object",
           "properties": {
-            "PrivateAddress": {
-              "type": "string"
+            "Params": {
+              "$ref": "#/definitions/AddCharmWithAuthorization"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "PrivateAddress"
-          ]
+          }
         },
-        "ProvisioningScriptParams": {
+        "AddMachines": {
           "type": "object",
           "properties": {
-            "DataDir": {
-              "type": "string"
-            },
-            "DisablePackageCommands": {
-              "type": "boolean"
-            },
-            "MachineId": {
-              "type": "string"
+            "Params": {
+              "$ref": "#/definitions/AddMachines"
             },
-            "Nonce": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/AddMachinesResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "MachineId",
-            "Nonce",
-            "DataDir",
-            "DisablePackageCommands"
-          ]
+          }
         },
-        "ProvisioningScriptResult": {
+        "AddMachinesV2": {
           "type": "object",
           "properties": {
-            "Script": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Script"
-          ]
+            "Params": {
+              "$ref": "#/definitions/AddMachines"
+            },
+            "Result": {
+              "$ref": "#/definitions/AddMachinesResults"
+            }
+          }
         },
-        "PublicAddress": {
+        "AgentVersion": {
           "type": "object",
           "properties": {
-            "Target": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/AgentVersionResult"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Target"
-          ]
+          }
         },
-        "PublicAddressResults": {
+        "DestroyMachines": {
           "type": "object",
           "properties": {
-            "PublicAddress": {
-              "type": "string"
+            "Params": {
+              "$ref": "#/definitions/DestroyMachines"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "PublicAddress"
-          ]
+          }
         },
-        "RelationStatus": {
+        "FindTools": {
           "type": "object",
           "properties": {
-            "Endpoints": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/EndpointStatus"
-              }
-            },
-            "Id": {
-              "type": "integer"
-            },
-            "Interface": {
-              "type": "string"
-            },
-            "Key": {
-              "type": "string"
+            "Params": {
+              "$ref": "#/definitions/FindToolsParams"
             },
-            "Scope": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/FindToolsResult"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Id",
-            "Key",
-            "Interface",
-            "Scope",
-            "Endpoints"
-          ]
+          }
         },
-        "ResolveCharmResult": {
+        "FullStatus": {
           "type": "object",
           "properties": {
-            "Error": {
-              "type": "string"
+            "Params": {
+              "$ref": "#/definitions/StatusParams"
             },
-            "URL": {
-              "$ref": "#/definitions/URL"
+            "Result": {
+              "$ref": "#/definitions/FullStatus"
             }
-          },
-          "additionalProperties": false
+          }
         },
-        "ResolveCharmResults": {
+        "GetBundleChanges": {
           "type": "object",
           "properties": {
-            "URLs": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ResolveCharmResult"
-              }
+            "Params": {
+              "$ref": "#/definitions/BundleChangesParams"
+            },
+            "Result": {
+              "$ref": "#/definitions/BundleChangesResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "URLs"
-          ]
+          }
         },
-        "ResolveCharms": {
+        "GetModelConstraints": {
           "type": "object",
           "properties": {
-            "References": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/URL"
-              }
+            "Result": {
+              "$ref": "#/definitions/GetConstraintsResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "References"
-          ]
+          }
         },
-        "Resolved": {
+        "InjectMachines": {
           "type": "object",
           "properties": {
-            "Retry": {
-              "type": "boolean"
+            "Params": {
+              "$ref": "#/definitions/AddMachines"
             },
-            "UnitName": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/AddMachinesResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "UnitName",
-            "Retry"
-          ]
+          }
         },
-        "ServiceStatus": {
+        "ModelGet": {
           "type": "object",
           "properties": {
-            "CanUpgradeTo": {
-              "type": "string"
-            },
-            "Charm": {
-              "type": "string"
-            },
-            "Err": {
-              "type": "object",
-              "additionalProperties": true
-            },
-            "Exposed": {
-              "type": "boolean"
-            },
-            "Life": {
-              "type": "string"
-            },
-            "MeterStatuses": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "$ref": "#/definitions/MeterStatus"
-                }
-              }
-            },
-            "Relations": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "array",
-                  "items": {
-                    "type": "string"
-                  }
-                }
-              }
-            },
-            "Status": {
-              "$ref": "#/definitions/DetailedStatus"
-            },
-            "SubordinateTo": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "Units": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "$ref": "#/definitions/UnitStatus"
-                }
-              }
+            "Result": {
+              "$ref": "#/definitions/ModelConfigResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Err",
-            "Charm",
-            "Exposed",
-            "Life",
-            "Relations",
-            "CanUpgradeTo",
-            "SubordinateTo",
-            "Units",
-            "MeterStatuses",
-            "Status"
-          ]
+          }
         },
-        "SetConstraints": {
+        "ModelInfo": {
           "type": "object",
           "properties": {
-            "Constraints": {
-              "$ref": "#/definitions/Value"
-            },
-            "ServiceName": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/ModelInfo"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "ServiceName",
-            "Constraints"
-          ]
+          }
         },
-        "SetModelAgentVersion": {
+        "ModelSet": {
           "type": "object",
           "properties": {
-            "Version": {
-              "$ref": "#/definitions/Number"
+            "Params": {
+              "$ref": "#/definitions/ModelSet"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Version"
-          ]
+          }
         },
-        "StatusHistoryArgs": {
+        "ModelUnset": {
           "type": "object",
           "properties": {
-            "Kind": {
-              "type": "string"
-            },
-            "Name": {
-              "type": "string"
-            },
-            "Size": {
-              "type": "integer"
+            "Params": {
+              "$ref": "#/definitions/ModelUnset"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Kind",
-            "Size",
-            "Name"
-          ]
+          }
         },
-        "StatusHistoryResults": {
+        "ModelUserInfo": {
           "type": "object",
           "properties": {
-            "Statuses": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/DetailedStatus"
-              }
+            "Result": {
+              "$ref": "#/definitions/ModelUserInfoResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Statuses"
-          ]
+          }
         },
-        "StatusParams": {
+        "PrivateAddress": {
           "type": "object",
           "properties": {
-            "Patterns": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "Params": {
+              "$ref": "#/definitions/PrivateAddress"
+            },
+            "Result": {
+              "$ref": "#/definitions/PrivateAddressResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Patterns"
-          ]
+          }
         },
-        "Tools": {
+        "ProvisioningScript": {
           "type": "object",
           "properties": {
-            "sha256": {
-              "type": "string"
-            },
-            "size": {
-              "type": "integer"
-            },
-            "url": {
-              "type": "string"
+            "Params": {
+              "$ref": "#/definitions/ProvisioningScriptParams"
             },
-            "version": {
-              "$ref": "#/definitions/Binary"
+            "Result": {
+              "$ref": "#/definitions/ProvisioningScriptResult"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "version",
-            "url",
-            "size"
-          ]
+          }
         },
-        "URL": {
+        "PublicAddress": {
           "type": "object",
           "properties": {
-            "Channel": {
-              "type": "string"
-            },
-            "Name": {
-              "type": "string"
-            },
-            "Revision": {
-              "type": "integer"
-            },
-            "Schema": {
-              "type": "string"
+            "Params": {
+              "$ref": "#/definitions/PublicAddress"
             },
-            "Series": {
-              "type": "string"
-            },
-            "User": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Schema",
-            "User",
-            "Name",
-            "Revision",
-            "Series",
-            "Channel"
-          ]
-        },
-        "UnitStatus": {
-          "type": "object",
-          "properties": {
-            "AgentStatus": {
-              "$ref": "#/definitions/DetailedStatus"
-            },
-            "Charm": {
-              "type": "string"
-            },
-            "Machine": {
-              "type": "string"
-            },
-            "OpenedPorts": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "PublicAddress": {
-              "type": "string"
-            },
-            "Subordinates": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "$ref": "#/definitions/UnitStatus"
-                }
-              }
-            },
-            "WorkloadStatus": {
-              "$ref": "#/definitions/DetailedStatus"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "AgentStatus",
-            "WorkloadStatus",
-            "Machine",
-            "OpenedPorts",
-            "PublicAddress",
-            "Charm",
-            "Subordinates"
-          ]
-        },
-        "Value": {
-          "type": "object",
-          "properties": {
-            "arch": {
-              "type": "string"
-            },
-            "container": {
-              "type": "string"
-            },
-            "cpu-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
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "Result": {
+              "$ref": "#/definitions/PublicAddressResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
+          }
         },
-        "packet": {
+        "ResolveCharms": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
+            "Params": {
+              "$ref": "#/definitions/ResolveCharms"
             },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "Controller",
-    "Version": 2,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "AllModels": {
-          "type": "object",
-          "properties": {
             "Result": {
-              "$ref": "#/definitions/UserModelList"
+              "$ref": "#/definitions/ResolveCharmResults"
             }
           }
         },
-        "DestroyController": {
+        "Resolved": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/DestroyControllerArgs"
+              "$ref": "#/definitions/Resolved"
             }
           }
         },
-        "InitiateModelMigration": {
+        "RetryProvisioning": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/InitiateModelMigrationArgs"
+              "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/InitiateModelMigrationResults"
+              "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "ListBlockedModels": {
+        "SetModelAgentVersion": {
           "type": "object",
           "properties": {
-            "Result": {
-              "$ref": "#/definitions/ModelBlockInfoList"
+            "Params": {
+              "$ref": "#/definitions/SetModelAgentVersion"
             }
           }
         },
-        "ModelConfig": {
+        "SetModelConstraints": {
           "type": "object",
           "properties": {
-            "Result": {
-              "$ref": "#/definitions/ModelConfigResults"
+            "Params": {
+              "$ref": "#/definitions/SetConstraints"
             }
           }
         },
-        "ModelStatus": {
+        "StatusHistory": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/Entities"
+              "$ref": "#/definitions/StatusHistoryRequests"
             },
             "Result": {
-              "$ref": "#/definitions/ModelStatusResults"
-            }
-          }
-        },
-        "RemoveBlocks": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/RemoveBlocksArgs"
+              "$ref": "#/definitions/StatusHistoryResults"
             }
           }
         },
-        "WatchAllModels": {
+        "WatchAll": {
           "type": "object",
           "properties": {
             "Result": {
         }
       },
       "definitions": {
-        "AllWatcherId": {
-          "type": "object",
-          "properties": {
-            "AllWatcherId": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "AllWatcherId"
-          ]
-        },
-        "DestroyControllerArgs": {
-          "type": "object",
-          "properties": {
-            "destroy-models": {
-              "type": "boolean"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "destroy-models"
-          ]
-        },
-        "Entities": {
+        "APIHostPortsResult": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "servers": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Entity"
+                "type": "array",
+                "items": {
+                  "$ref": "#/definitions/HostPort"
+                }
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "servers"
           ]
         },
-        "Entity": {
+        "AddCharm": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "channel": {
+              "type": "string"
+            },
+            "url": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "url",
+            "channel"
           ]
         },
-        "Error": {
+        "AddCharmWithAuthorization": {
           "type": "object",
           "properties": {
-            "Code": {
+            "channel": {
               "type": "string"
             },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "Message": {
+            "url": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "url",
+            "channel",
+            "macaroon"
           ]
         },
-        "ErrorInfo": {
+        "AddMachineParams": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
+            "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"
             },
-            "MacaroonPath": {
+            "series": {
               "type": "string"
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "series",
+            "constraints",
+            "jobs",
+            "parent-id",
+            "container-type",
+            "instance-id",
+            "nonce",
+            "hardware-characteristics",
+            "addresses"
+          ]
         },
-        "InitiateModelMigrationArgs": {
+        "AddMachines": {
           "type": "object",
           "properties": {
-            "specs": {
+            "params": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ModelMigrationSpec"
+                "$ref": "#/definitions/AddMachineParams"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "specs"
+            "params"
           ]
         },
-        "InitiateModelMigrationResult": {
+        "AddMachinesResult": {
           "type": "object",
           "properties": {
             "error": {
               "$ref": "#/definitions/Error"
             },
-            "id": {
-              "type": "string"
-            },
-            "model-tag": {
+            "machine": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "model-tag",
-            "error",
-            "id"
+            "machine"
           ]
         },
-        "InitiateModelMigrationResults": {
+        "AddMachinesResults": {
           "type": "object",
           "properties": {
-            "results": {
+            "machines": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/InitiateModelMigrationResult"
+                "$ref": "#/definitions/AddMachinesResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "results"
+            "machines"
           ]
         },
-        "Macaroon": {
+        "Address": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
+            "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"
+                }
               }
             },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
+            "relations": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "array",
+                  "items": {
+                    "type": "string"
+                  }
+                }
               }
             },
-            "id": {
-              "$ref": "#/definitions/packet"
+            "series": {
+              "type": "string"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "status": {
+              "$ref": "#/definitions/DetailedStatus"
             },
-            "sig": {
+            "subordinate-to": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "type": "string"
+              }
+            },
+            "units": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/UnitStatus"
+                }
               }
+            },
+            "workload-version": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "charm",
+            "series",
+            "exposed",
+            "life",
+            "relations",
+            "can-upgrade-to",
+            "subordinate-to",
+            "units",
+            "meter-statuses",
+            "status",
+            "workload-version"
           ]
         },
-        "Model": {
+        "Binary": {
           "type": "object",
           "properties": {
-            "Name": {
+            "Arch": {
               "type": "string"
             },
-            "OwnerTag": {
-              "type": "string"
+            "Number": {
+              "$ref": "#/definitions/Number"
             },
-            "UUID": {
+            "Series": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Name",
-            "UUID",
-            "OwnerTag"
+            "Number",
+            "Series",
+            "Arch"
           ]
         },
-        "ModelBlockInfo": {
+        "BundleChange": {
           "type": "object",
           "properties": {
-            "blocks": {
+            "args": {
               "type": "array",
               "items": {
-                "type": "string"
+                "type": "object",
+                "additionalProperties": true
               }
             },
-            "model-uuid": {
+            "id": {
               "type": "string"
             },
-            "name": {
+            "method": {
               "type": "string"
             },
-            "owner-tag": {
+            "requires": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "id",
+            "method",
+            "args",
+            "requires"
+          ]
+        },
+        "BundleChangesParams": {
+          "type": "object",
+          "properties": {
+            "yaml": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "name",
-            "model-uuid",
-            "owner-tag",
-            "blocks"
+            "yaml"
           ]
         },
-        "ModelBlockInfoList": {
+        "BundleChangesResults": {
           "type": "object",
           "properties": {
-            "models": {
+            "changes": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ModelBlockInfo"
+                "$ref": "#/definitions/BundleChange"
+              }
+            },
+            "errors": {
+              "type": "array",
+              "items": {
+                "type": "string"
               }
             }
           },
           "additionalProperties": false
         },
-        "ModelConfigResults": {
+        "ConfigValue": {
           "type": "object",
           "properties": {
-            "Config": {
+            "source": {
+              "type": "string"
+            },
+            "value": {
               "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
-              }
+              "additionalProperties": true
             }
           },
           "additionalProperties": false,
           "required": [
-            "Config"
+            "value",
+            "source"
           ]
         },
-        "ModelMigrationSpec": {
+        "Constraints": {
           "type": "object",
           "properties": {
-            "model-tag": {
+            "Count": {
+              "type": "integer"
+            },
+            "Pool": {
               "type": "string"
             },
-            "target-info": {
-              "$ref": "#/definitions/ModelMigrationTargetInfo"
+            "Size": {
+              "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "model-tag",
-            "target-info"
+            "Pool",
+            "Size",
+            "Count"
           ]
         },
-        "ModelMigrationTargetInfo": {
+        "DestroyMachines": {
           "type": "object",
           "properties": {
-            "addrs": {
+            "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
+                }
+              }
             },
-            "auth-tag": {
+            "err": {
+              "type": "object",
+              "additionalProperties": true
+            },
+            "info": {
               "type": "string"
             },
-            "ca-cert": {
+            "kind": {
               "type": "string"
             },
-            "controller-tag": {
+            "life": {
               "type": "string"
             },
-            "password": {
+            "since": {
+              "type": "string",
+              "format": "date-time"
+            },
+            "status": {
+              "type": "string"
+            },
+            "version": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "controller-tag",
-            "addrs",
-            "ca-cert",
-            "auth-tag",
-            "password"
+            "status",
+            "info",
+            "data",
+            "since",
+            "kind",
+            "version",
+            "life"
           ]
         },
-        "ModelStatus": {
+        "EndpointStatus": {
           "type": "object",
           "properties": {
-            "hosted-machine-count": {
-              "type": "integer"
-            },
-            "life": {
+            "application": {
               "type": "string"
             },
-            "model-tag": {
+            "name": {
               "type": "string"
             },
-            "owner-tag": {
+            "role": {
               "type": "string"
             },
-            "service-count": {
-              "type": "integer"
+            "subordinate": {
+              "type": "boolean"
             }
           },
           "additionalProperties": false,
           "required": [
-            "model-tag",
-            "life",
-            "hosted-machine-count",
-            "service-count",
-            "owner-tag"
+            "application",
+            "name",
+            "role",
+            "subordinate"
           ]
         },
-        "ModelStatusResults": {
+        "Entities": {
           "type": "object",
           "properties": {
-            "models": {
+            "entities": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ModelStatus"
+                "$ref": "#/definitions/Entity"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "models"
+            "entities"
           ]
         },
-        "RemoveBlocksArgs": {
+        "Entity": {
           "type": "object",
           "properties": {
-            "all": {
-              "type": "boolean"
+            "tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "all"
+            "tag"
           ]
         },
-        "UserModel": {
+        "EntityStatus": {
           "type": "object",
           "properties": {
-            "LastConnection": {
-              "type": "string",
-              "format": "date-time"
-            },
-            "Model": {
-              "$ref": "#/definitions/Model"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Model",
-            "LastConnection"
-          ]
-        },
-        "UserModelList": {
-          "type": "object",
-          "properties": {
-            "UserModels": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/UserModel"
+            "data": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
               }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "UserModels"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "info": {
+              "type": "string"
+            },
+            "since": {
+              "type": "string",
+              "format": "date-time"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "status": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "status",
+            "info",
+            "since"
           ]
         },
-        "packet": {
+        "Error": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
+            "code": {
+              "type": "string"
             },
-            "start": {
-              "type": "integer"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "totalLen": {
-              "type": "integer"
+            "message": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "message",
+            "code"
           ]
-        }
-      }
-    }
-  },
-  {
-    "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": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/EntityPasswords"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
-            }
-          }
-        },
-        "StateAddresses": {
-          "type": "object",
-          "properties": {
-            "Result": {
-              "$ref": "#/definitions/StringsResult"
+            "macaroon-path": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false
         },
-        "WatchAPIHostPorts": {
+        "ErrorResult": {
           "type": "object",
           "properties": {
-            "Result": {
-              "$ref": "#/definitions/NotifyWatchResult"
+            "error": {
+              "$ref": "#/definitions/Error"
             }
-          }
+          },
+          "additionalProperties": false
         },
-        "WatchUnits": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/StringsWatchResults"
-            }
-          }
-        }
-      },
-      "definitions": {
-        "APIHostPortsResult": {
+        "ErrorResults": {
           "type": "object",
           "properties": {
-            "Servers": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "array",
-                "items": {
-                  "$ref": "#/definitions/HostPort"
-                }
+                "$ref": "#/definitions/ErrorResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Servers"
+            "results"
           ]
         },
-        "Address": {
+        "FindToolsParams": {
           "type": "object",
           "properties": {
-            "Scope": {
+            "arch": {
               "type": "string"
             },
-            "SpaceName": {
-              "type": "string"
+            "major": {
+              "type": "integer"
             },
-            "Type": {
-              "type": "string"
+            "minor": {
+              "type": "integer"
             },
-            "Value": {
+            "number": {
+              "$ref": "#/definitions/Number"
+            },
+            "series": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Value",
-            "Type",
-            "Scope"
+            "number",
+            "major",
+            "minor",
+            "arch",
+            "series"
           ]
         },
-        "BytesResult": {
+        "FindToolsResult": {
           "type": "object",
           "properties": {
-            "Result": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "list": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/Tools"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Result"
+            "list"
           ]
         },
-        "DeployerConnectionValues": {
+        "FullStatus": {
           "type": "object",
           "properties": {
-            "APIAddresses": {
-              "type": "array",
-              "items": {
-                "type": "string"
+            "applications": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/ApplicationStatus"
+                }
               }
             },
-            "StateAddresses": {
-              "type": "array",
-              "items": {
-                "type": "string"
+            "machines": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/MachineStatus"
+                }
               }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "StateAddresses",
-            "APIAddresses"
-          ]
-        },
-        "Entities": {
-          "type": "object",
-          "properties": {
-            "Entities": {
+            },
+            "model": {
+              "$ref": "#/definitions/ModelStatusInfo"
+            },
+            "relations": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Entity"
+                "$ref": "#/definitions/RelationStatus"
+              }
+            },
+            "remote-applications": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/RemoteApplicationStatus"
+                }
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "model",
+            "machines",
+            "applications",
+            "remote-applications",
+            "relations"
           ]
         },
-        "Entity": {
+        "GetConstraintsResults": {
           "type": "object",
           "properties": {
-            "Tag": {
-              "type": "string"
+            "constraints": {
+              "$ref": "#/definitions/Value"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "constraints"
           ]
         },
-        "EntityPassword": {
+        "HardwareCharacteristics": {
           "type": "object",
           "properties": {
-            "Password": {
+            "arch": {
               "type": "string"
             },
-            "Tag": {
+            "availability-zone": {
               "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Tag",
-            "Password"
-          ]
-        },
-        "EntityPasswords": {
-          "type": "object",
-          "properties": {
-            "Changes": {
-              "type": "array",
+            },
+            "cpu-cores": {
+              "type": "integer"
+            },
+            "cpu-power": {
+              "type": "integer"
+            },
+            "mem": {
+              "type": "integer"
+            },
+            "root-disk": {
+              "type": "integer"
+            },
+            "tags": {
+              "type": "array",
               "items": {
-                "$ref": "#/definitions/EntityPassword"
+                "type": "string"
               }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Changes"
-          ]
+          "additionalProperties": false
         },
-        "Error": {
+        "History": {
           "type": "object",
           "properties": {
-            "Code": {
-              "type": "string"
-            },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "Message": {
-              "type": "string"
+            "statuses": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/DetailedStatus"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "statuses"
           ]
         },
-        "ErrorInfo": {
+        "HostPort": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
+            "Address": {
+              "$ref": "#/definitions/Address"
             },
-            "MacaroonPath": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false
-        },
-        "ErrorResult": {
-          "type": "object",
-          "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "port": {
+              "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error"
+            "Address",
+            "port"
           ]
         },
-        "ErrorResults": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "MachineHardware": {
           "type": "object",
           "properties": {
-            "Results": {
+            "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": {
-                "$ref": "#/definitions/ErrorResult"
+                "type": "string"
               }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Results"
-          ]
+          "additionalProperties": false
         },
-        "HostPort": {
+        "MachineStatus": {
           "type": "object",
           "properties": {
-            "Address": {
-              "$ref": "#/definitions/Address"
+            "agent-status": {
+              "$ref": "#/definitions/DetailedStatus"
             },
-            "Port": {
-              "type": "integer"
+            "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": [
-            "Address",
-            "Port"
+            "agent-status",
+            "instance-status",
+            "dns-name",
+            "ip-addresses",
+            "instance-id",
+            "series",
+            "id",
+            "containers",
+            "hardware",
+            "jobs",
+            "has-vote",
+            "wants-vote"
           ]
         },
-        "LifeResult": {
+        "MeterStatus": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "color": {
+              "type": "string"
             },
-            "Life": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Life",
-            "Error"
+            "color",
+            "message"
           ]
         },
-        "LifeResults": {
+        "ModelConfigResults": {
           "type": "object",
           "properties": {
-            "Results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/LifeResult"
+            "config": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/ConfigValue"
+                }
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "config"
           ]
         },
-        "Macaroon": {
+        "ModelInfo": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
+            "cloud-credential-tag": {
+              "type": "string"
             },
-            "data": {
+            "cloud-region": {
+              "type": "string"
+            },
+            "cloud-tag": {
+              "type": "string"
+            },
+            "controller-uuid": {
+              "type": "string"
+            },
+            "default-series": {
+              "type": "string"
+            },
+            "life": {
+              "type": "string"
+            },
+            "machines": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/ModelMachineInfo"
               }
             },
-            "id": {
-              "$ref": "#/definitions/packet"
+            "name": {
+              "type": "string"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "owner-tag": {
+              "type": "string"
+            },
+            "provider-type": {
+              "type": "string"
+            },
+            "status": {
+              "$ref": "#/definitions/EntityStatus"
             },
-            "sig": {
+            "users": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/ModelUserInfo"
               }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
-        },
-        "NotifyWatchResult": {
-          "type": "object",
-          "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
             },
-            "NotifyWatcherId": {
+            "uuid": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "NotifyWatcherId",
-            "Error"
+            "name",
+            "uuid",
+            "controller-uuid",
+            "provider-type",
+            "default-series",
+            "cloud-tag",
+            "owner-tag",
+            "life",
+            "status",
+            "users",
+            "machines"
           ]
         },
-        "StringResult": {
+        "ModelMachineInfo": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "hardware": {
+              "$ref": "#/definitions/MachineHardware"
             },
-            "Result": {
+            "has-vote": {
+              "type": "boolean"
+            },
+            "id": {
+              "type": "string"
+            },
+            "instance-id": {
+              "type": "string"
+            },
+            "status": {
               "type": "string"
+            },
+            "wants-vote": {
+              "type": "boolean"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Result"
+            "id"
           ]
         },
-        "StringsResult": {
+        "ModelSet": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "Result": {
-              "type": "array",
-              "items": {
-                "type": "string"
+            "config": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Result"
+            "config"
           ]
         },
-        "StringsWatchResult": {
+        "ModelStatusInfo": {
           "type": "object",
           "properties": {
-            "Changes": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "available-version": {
+              "type": "string"
             },
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "cloud-tag": {
+              "type": "string"
+            },
+            "migration": {
+              "type": "string"
+            },
+            "name": {
+              "type": "string"
+            },
+            "region": {
+              "type": "string"
             },
-            "StringsWatcherId": {
+            "version": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "StringsWatcherId",
-            "Changes",
-            "Error"
+            "name",
+            "cloud-tag",
+            "version",
+            "available-version"
           ]
         },
-        "StringsWatchResults": {
+        "ModelUnset": {
           "type": "object",
           "properties": {
-            "Results": {
+            "keys": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/StringsWatchResult"
+                "type": "string"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "keys"
           ]
         },
-        "caveat": {
+        "ModelUserInfo": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
+            "access": {
+              "type": "string"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "display-name": {
+              "type": "string"
+            },
+            "last-connection": {
+              "type": "string",
+              "format": "date-time"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "user": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "user",
+            "display-name",
+            "last-connection",
+            "access"
           ]
         },
-        "packet": {
+        "ModelUserInfoResult": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
+            "result": {
+              "$ref": "#/definitions/ModelUserInfo"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
-        }
-      }
-    }
-  },
-  {
-    "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"
-            }
-          }
+          "additionalProperties": false
         },
-        "ModelConfig": {
-          "type": "object",
-          "properties": {
-            "Result": {
-              "$ref": "#/definitions/ModelConfigResult"
-            }
-          }
-        }
-      },
-      "definitions": {
-        "AddSubnetParams": {
+        "ModelUserInfoResults": {
           "type": "object",
           "properties": {
-            "SpaceTag": {
-              "type": "string"
-            },
-            "SubnetProviderId": {
-              "type": "string"
-            },
-            "SubnetTag": {
-              "type": "string"
-            },
-            "Zones": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "string"
+                "$ref": "#/definitions/ModelUserInfoResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "SpaceTag"
+            "results"
           ]
         },
-        "AddSubnetsParams": {
+        "Number": {
           "type": "object",
           "properties": {
-            "Subnets": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/AddSubnetParams"
-              }
+            "Build": {
+              "type": "integer"
+            },
+            "Major": {
+              "type": "integer"
+            },
+            "Minor": {
+              "type": "integer"
+            },
+            "Patch": {
+              "type": "integer"
+            },
+            "Tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Subnets"
+            "Major",
+            "Minor",
+            "Tag",
+            "Patch",
+            "Build"
           ]
         },
-        "CreateSpaceParams": {
+        "Placement": {
           "type": "object",
           "properties": {
-            "ProviderId": {
+            "directive": {
               "type": "string"
             },
-            "Public": {
-              "type": "boolean"
-            },
-            "SpaceTag": {
+            "scope": {
               "type": "string"
-            },
-            "SubnetTags": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "SubnetTags",
-            "SpaceTag",
-            "Public"
+            "scope",
+            "directive"
           ]
         },
-        "CreateSpacesParams": {
+        "PrivateAddress": {
           "type": "object",
           "properties": {
-            "Spaces": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/CreateSpaceParams"
-              }
+            "target": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Spaces"
+            "target"
           ]
         },
-        "DiscoverSpacesResults": {
+        "PrivateAddressResults": {
           "type": "object",
           "properties": {
-            "Results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ProviderSpace"
-              }
+            "private-address": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "private-address"
           ]
         },
-        "Error": {
+        "ProvisioningScriptParams": {
           "type": "object",
           "properties": {
-            "Code": {
+            "data-dir": {
               "type": "string"
             },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "disable-package-commands": {
+              "type": "boolean"
+            },
+            "machine-id": {
+              "type": "string"
             },
-            "Message": {
+            "nonce": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "machine-id",
+            "nonce",
+            "data-dir",
+            "disable-package-commands"
           ]
         },
-        "ErrorInfo": {
+        "ProvisioningScriptResult": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
-            },
-            "MacaroonPath": {
+            "script": {
               "type": "string"
             }
           },
-          "additionalProperties": false
-        },
-        "ErrorResult": {
-          "type": "object",
-          "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            }
-          },
           "additionalProperties": false,
           "required": [
-            "Error"
+            "script"
           ]
         },
-        "ErrorResults": {
+        "PublicAddress": {
           "type": "object",
           "properties": {
-            "Results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ErrorResult"
-              }
+            "target": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "target"
           ]
         },
-        "ListSubnetsResults": {
+        "PublicAddressResults": {
           "type": "object",
           "properties": {
-            "Results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/Subnet"
-              }
+            "public-address": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "public-address"
           ]
         },
-        "Macaroon": {
+        "RelationStatus": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
+            "endpoints": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/EndpointStatus"
               }
             },
             "id": {
-              "$ref": "#/definitions/packet"
+              "type": "integer"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "interface": {
+              "type": "string"
             },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "key": {
+              "type": "string"
+            },
+            "scope": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
             "id",
-            "caveats",
-            "sig"
-          ]
-        },
-        "ModelConfigResult": {
-          "type": "object",
-          "properties": {
-            "Config": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Config"
+            "key",
+            "interface",
+            "scope",
+            "endpoints"
           ]
         },
-        "ProviderSpace": {
+        "RemoteApplicationStatus": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "Name": {
+            "application-name": {
               "type": "string"
             },
-            "ProviderId": {
+            "application-url": {
               "type": "string"
             },
-            "Subnets": {
+            "endpoints": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Subnet"
+                "$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": [
-            "Name",
-            "ProviderId",
-            "Subnets"
+            "application-url",
+            "application-name",
+            "endpoints",
+            "life",
+            "relations",
+            "status"
           ]
         },
-        "Subnet": {
+        "RemoteEndpoint": {
           "type": "object",
           "properties": {
-            "CIDR": {
+            "interface": {
               "type": "string"
             },
-            "Life": {
-              "type": "string"
+            "limit": {
+              "type": "integer"
             },
-            "ProviderId": {
+            "name": {
               "type": "string"
             },
-            "SpaceTag": {
+            "role": {
               "type": "string"
             },
-            "StaticRangeHighIP": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "StaticRangeLowIP": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "Status": {
+            "scope": {
               "type": "string"
-            },
-            "VLANTag": {
-              "type": "integer"
-            },
-            "Zones": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "CIDR",
-            "VLANTag",
-            "Life",
-            "SpaceTag",
-            "Zones"
+            "name",
+            "role",
+            "interface",
+            "limit",
+            "scope"
           ]
         },
-        "SubnetsFilters": {
+        "ResolveCharmResult": {
           "type": "object",
           "properties": {
-            "SpaceTag": {
+            "error": {
               "type": "string"
             },
-            "Zone": {
+            "url": {
               "type": "string"
             }
           },
           "additionalProperties": false
         },
-        "caveat": {
+        "ResolveCharmResults": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "urls": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ResolveCharmResult"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "urls"
           ]
         },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "DiskManager",
-    "Version": 2,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "SetMachineBlockDevices": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/SetMachineBlockDevices"
-            },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
-            }
-          }
-        }
-      },
-      "definitions": {
-        "BlockDevice": {
+        "ResolveCharms": {
           "type": "object",
           "properties": {
-            "BusAddress": {
-              "type": "string"
-            },
-            "DeviceLinks": {
+            "references": {
               "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"
+            "references"
           ]
         },
-        "Error": {
+        "Resolved": {
           "type": "object",
           "properties": {
-            "Code": {
-              "type": "string"
-            },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "retry": {
+              "type": "boolean"
             },
-            "Message": {
+            "unit-name": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "unit-name",
+            "retry"
           ]
         },
-        "ErrorInfo": {
+        "SetConstraints": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
-            },
-            "MacaroonPath": {
+            "application": {
               "type": "string"
-            }
-          },
-          "additionalProperties": false
-        },
-        "ErrorResult": {
-          "type": "object",
-          "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            },
+            "constraints": {
+              "$ref": "#/definitions/Value"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error"
+            "application",
+            "constraints"
           ]
         },
-        "ErrorResults": {
+        "SetModelAgentVersion": {
           "type": "object",
           "properties": {
-            "Results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ErrorResult"
-              }
+            "version": {
+              "$ref": "#/definitions/Number"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "version"
           ]
         },
-        "Macaroon": {
+        "StatusHistoryFilter": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
+            "date": {
+              "type": "string",
+              "format": "date-time"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "delta": {
+              "type": "integer"
             },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "size": {
+              "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "size",
+            "date",
+            "delta"
           ]
         },
-        "MachineBlockDevices": {
+        "StatusHistoryRequest": {
           "type": "object",
           "properties": {
-            "blockdevices": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/BlockDevice"
-              }
+            "filter": {
+              "$ref": "#/definitions/StatusHistoryFilter"
             },
-            "machine": {
+            "historyKind": {
+              "type": "string"
+            },
+            "size": {
+              "type": "integer"
+            },
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "machine"
+            "historyKind",
+            "size",
+            "filter",
+            "tag"
           ]
         },
-        "SetMachineBlockDevices": {
+        "StatusHistoryRequests": {
           "type": "object",
           "properties": {
-            "machineblockdevices": {
+            "requests": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/MachineBlockDevices"
+                "$ref": "#/definitions/StatusHistoryRequest"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "machineblockdevices"
+            "requests"
           ]
         },
-        "caveat": {
+        "StatusHistoryResult": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "history": {
+              "$ref": "#/definitions/History"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "history"
           ]
         },
-        "packet": {
+        "StatusHistoryResults": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/StatusHistoryResult"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "results"
           ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "EntityWatcher",
-    "Version": 2,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "Next": {
-          "type": "object",
-          "properties": {
-            "Result": {
-              "$ref": "#/definitions/EntitiesWatchResult"
-            }
-          }
         },
-        "Stop": {
-          "type": "object"
-        }
-      },
-      "definitions": {
-        "EntitiesWatchResult": {
+        "StatusParams": {
           "type": "object",
           "properties": {
-            "Changes": {
+            "patterns": {
               "type": "array",
               "items": {
                 "type": "string"
               }
-            },
-            "EntityWatcherId": {
-              "type": "string"
-            },
-            "Error": {
-              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "EntityWatcherId",
-            "Changes",
-            "Error"
+            "patterns"
           ]
         },
-        "Error": {
+        "Tools": {
           "type": "object",
           "properties": {
-            "Code": {
+            "sha256": {
               "type": "string"
             },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "size": {
+              "type": "integer"
             },
-            "Message": {
+            "url": {
               "type": "string"
+            },
+            "version": {
+              "$ref": "#/definitions/Binary"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "version",
+            "url",
+            "size"
           ]
         },
-        "ErrorInfo": {
+        "UnitStatus": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
+            "agent-status": {
+              "$ref": "#/definitions/DetailedStatus"
             },
-            "MacaroonPath": {
+            "charm": {
               "type": "string"
-            }
-          },
-          "additionalProperties": false
-        },
-        "Macaroon": {
-          "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
             },
-            "data": {
+            "leader": {
+              "type": "boolean"
+            },
+            "machine": {
+              "type": "string"
+            },
+            "opened-ports": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "type": "string"
               }
             },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "public-address": {
+              "type": "string"
             },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
+            "subordinates": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/UnitStatus"
+                }
               }
+            },
+            "workload-status": {
+              "$ref": "#/definitions/DetailedStatus"
+            },
+            "workload-version": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "agent-status",
+            "workload-status",
+            "workload-version",
+            "machine",
+            "opened-ports",
+            "public-address",
+            "charm",
+            "subordinates"
           ]
         },
-        "caveat": {
+        "Value": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
+            "arch": {
+              "type": "string"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "container": {
+              "type": "string"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
+            "cores": {
               "type": "integer"
             },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
+            "cpu-power": {
               "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
-        }
-      }
-    }
-  },
-  {
-    "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"
             },
-            "MacaroonPath": {
+            "instance-type": {
               "type": "string"
-            }
-          },
-          "additionalProperties": false
-        },
-        "Macaroon": {
-          "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
             },
-            "id": {
-              "$ref": "#/definitions/packet"
+            "mem": {
+              "type": "integer"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "root-disk": {
+              "type": "integer"
             },
-            "sig": {
+            "spaces": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "type": "string"
               }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
-        },
-        "MachineStorageId": {
-          "type": "object",
-          "properties": {
-            "attachmenttag": {
-              "type": "string"
             },
-            "machinetag": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "machinetag",
-            "attachmenttag"
-          ]
-        },
-        "MachineStorageIdsWatchResult": {
-          "type": "object",
-          "properties": {
-            "Changes": {
+            "tags": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/MachineStorageId"
+                "type": "string"
               }
             },
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "MachineStorageIdsWatcherId": {
+            "virt-type": {
               "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "MachineStorageIdsWatcherId",
-            "Changes",
-            "Error"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
+          "additionalProperties": false
         }
       }
     }
   },
   {
-    "Name": "Firewaller",
-    "Version": 2,
+    "Name": "Cloud",
+    "Version": 1,
     "Schema": {
       "type": "object",
       "properties": {
-        "GetAssignedMachine": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/StringResults"
-            }
-          }
-        },
-        "GetExposed": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/BoolResults"
-            }
-          }
-        },
-        "GetMachineActiveSubnets": {
+        "Cloud": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/StringsResults"
-            }
-          }
-        },
-        "GetMachinePorts": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/MachinePortsParams"
-            },
-            "Result": {
-              "$ref": "#/definitions/MachinePortsResults"
+              "$ref": "#/definitions/CloudResults"
             }
           }
         },
-        "InstanceId": {
+        "Clouds": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
             "Result": {
-              "$ref": "#/definitions/StringResults"
+              "$ref": "#/definitions/CloudsResult"
             }
           }
         },
-        "Life": {
+        "Credential": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/LifeResults"
+              "$ref": "#/definitions/CloudCredentialResults"
             }
           }
         },
-        "ModelConfig": {
+        "DefaultCloud": {
           "type": "object",
           "properties": {
             "Result": {
-              "$ref": "#/definitions/ModelConfigResult"
+              "$ref": "#/definitions/StringResult"
             }
           }
         },
-        "Watch": {
+        "RevokeCredentials": {
           "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"
+              "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "WatchOpenedPorts": {
+        "UpdateCredentials": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/Entities"
+              "$ref": "#/definitions/UpdateCloudCredentials"
             },
             "Result": {
-              "$ref": "#/definitions/StringsWatchResults"
+              "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "WatchUnits": {
+        "UserCredentials": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/Entities"
+              "$ref": "#/definitions/UserClouds"
             },
             "Result": {
-              "$ref": "#/definitions/StringsWatchResults"
+              "$ref": "#/definitions/StringsResults"
             }
           }
         }
       },
       "definitions": {
-        "BoolResult": {
+        "Cloud": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "auth-types": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             },
-            "Result": {
-              "type": "boolean"
+            "endpoint": {
+              "type": "string"
+            },
+            "identity-endpoint": {
+              "type": "string"
+            },
+            "regions": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/CloudRegion"
+              }
+            },
+            "storage-endpoint": {
+              "type": "string"
+            },
+            "type": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Result"
+            "type"
           ]
         },
-        "BoolResults": {
+        "CloudCredential": {
           "type": "object",
           "properties": {
-            "Results": {
+            "attrs": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "string"
+                }
+              }
+            },
+            "auth-type": {
+              "type": "string"
+            },
+            "redacted": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/BoolResult"
+                "type": "string"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "auth-type"
           ]
         },
-        "Entities": {
+        "CloudCredentialResult": {
           "type": "object",
           "properties": {
-            "Entities": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/Entity"
-              }
-            }
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "result": {
+              "$ref": "#/definitions/CloudCredential"
+            }
           },
-          "additionalProperties": false,
-          "required": [
-            "Entities"
-          ]
+          "additionalProperties": false
         },
-        "Entity": {
+        "CloudCredentialResults": {
           "type": "object",
           "properties": {
-            "Tag": {
-              "type": "string"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/CloudCredentialResult"
+              }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Tag"
-          ]
+          "additionalProperties": false
         },
-        "Error": {
+        "CloudRegion": {
           "type": "object",
           "properties": {
-            "Code": {
+            "endpoint": {
               "type": "string"
             },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "identity-endpoint": {
+              "type": "string"
+            },
+            "name": {
+              "type": "string"
             },
-            "Message": {
+            "storage-endpoint": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "name"
           ]
         },
-        "ErrorInfo": {
+        "CloudResult": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
+            "cloud": {
+              "$ref": "#/definitions/Cloud"
             },
-            "MacaroonPath": {
-              "type": "string"
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false
         },
-        "LifeResult": {
+        "CloudResults": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "Life": {
-              "type": "string"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/CloudResult"
+              }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Life",
-            "Error"
-          ]
+          "additionalProperties": false
         },
-        "LifeResults": {
+        "CloudsResult": {
           "type": "object",
           "properties": {
-            "Results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/LifeResult"
+            "clouds": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/Cloud"
+                }
               }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Results"
-          ]
+          "additionalProperties": false
         },
-        "Macaroon": {
+        "Entities": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
+            "entities": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/Entity"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "entities"
           ]
         },
-        "MachinePortRange": {
+        "Entity": {
           "type": "object",
           "properties": {
-            "PortRange": {
-              "$ref": "#/definitions/PortRange"
-            },
-            "RelationTag": {
-              "type": "string"
-            },
-            "UnitTag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "UnitTag",
-            "RelationTag",
-            "PortRange"
+            "tag"
           ]
         },
-        "MachinePorts": {
+        "Error": {
           "type": "object",
           "properties": {
-            "MachineTag": {
+            "code": {
               "type": "string"
             },
-            "SubnetTag": {
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
+            },
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "MachineTag",
-            "SubnetTag"
-          ]
-        },
-        "MachinePortsParams": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/MachinePorts"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Params"
+            "message",
+            "code"
           ]
         },
-        "MachinePortsResult": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "Ports": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/MachinePortRange"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Error",
-            "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
-                }
-              }
+            "macaroon-path": {
+              "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Config"
-          ]
+          "additionalProperties": false
         },
-        "NotifyWatchResult": {
+        "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
-            },
-            "NotifyWatcherId": {
-              "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "NotifyWatcherId",
-            "Error"
-          ]
+          "additionalProperties": false
         },
-        "NotifyWatchResults": {
+        "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/NotifyWatchResult"
+                "$ref": "#/definitions/ErrorResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
-        "PortRange": {
+        "Macaroon": {
           "type": "object",
-          "properties": {
-            "FromPort": {
-              "type": "integer"
-            },
-            "Protocol": {
-              "type": "string"
-            },
-            "ToPort": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "FromPort",
-            "ToPort",
-            "Protocol"
-          ]
+          "additionalProperties": false
         },
         "StringResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Result": {
+            "result": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Result"
-          ]
-        },
-        "StringResults": {
-          "type": "object",
-          "properties": {
-            "Results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/StringResult"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Results"
+            "result"
           ]
         },
         "StringsResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Result": {
+            "result": {
               "type": "array",
               "items": {
                 "type": "string"
               }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error",
-            "Result"
-          ]
+          "additionalProperties": false
         },
         "StringsResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/StringsResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
-        "StringsWatchResult": {
+        "UpdateCloudCredential": {
           "type": "object",
           "properties": {
-            "Changes": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "credential": {
+              "$ref": "#/definitions/CloudCredential"
             },
-            "StringsWatcherId": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "StringsWatcherId",
-            "Changes",
-            "Error"
+            "tag",
+            "credential"
           ]
         },
-        "StringsWatchResults": {
+        "UpdateCloudCredentials": {
           "type": "object",
           "properties": {
-            "Results": {
+            "credentials": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/StringsWatchResult"
+                "$ref": "#/definitions/UpdateCloudCredential"
               }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Results"
-          ]
+          "additionalProperties": false
         },
-        "caveat": {
+        "UserCloud": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "cloud-tag": {
+              "type": "string"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "user-tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "user-tag",
+            "cloud-tag"
           ]
         },
-        "packet": {
+        "UserClouds": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
+            "user-clouds": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/UserCloud"
+              }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
+          "additionalProperties": false
         }
       }
     }
   },
   {
-    "Name": "HighAvailability",
-    "Version": 2,
+    "Name": "Controller",
+    "Version": 3,
     "Schema": {
       "type": "object",
       "properties": {
-        "EnableHA": {
+        "AllModels": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/ControllersSpecs"
-            },
             "Result": {
-              "$ref": "#/definitions/ControllersChangeResults"
+              "$ref": "#/definitions/UserModelList"
             }
           }
         },
-        "ResumeHAReplicationAfterUpgrade": {
+        "CloudSpec": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/ResumeReplicationParams"
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/CloudSpecResults"
             }
           }
         },
-        "StopHAReplicationForUpgrade": {
+        "ControllerConfig": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/UpgradeMongoParams"
-            },
             "Result": {
-              "$ref": "#/definitions/MongoUpgradeResults"
+              "$ref": "#/definitions/ControllerConfigResult"
             }
           }
-        }
-      },
-      "definitions": {
-        "Address": {
+        },
+        "DestroyController": {
           "type": "object",
           "properties": {
-            "Scope": {
-              "type": "string"
+            "Params": {
+              "$ref": "#/definitions/DestroyControllerArgs"
+            }
+          }
+        },
+        "GetCloudSpec": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/ModelTag"
             },
-            "SpaceName": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/CloudSpecResult"
+            }
+          }
+        },
+        "GetControllerAccess": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
             },
-            "SpaceProviderId": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/UserAccessResults"
+            }
+          }
+        },
+        "HostedModelConfigs": {
+          "type": "object",
+          "properties": {
+            "Result": {
+              "$ref": "#/definitions/HostedModelConfigsResults"
+            }
+          }
+        },
+        "InitiateMigration": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/InitiateMigrationArgs"
             },
-            "Type": {
-              "type": "string"
+            "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"
             },
-            "Value": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/ModelStatusResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Value",
-            "Type",
-            "Scope",
-            "SpaceName",
-            "SpaceProviderId"
-          ]
+          }
         },
-        "ControllersChangeResult": {
+        "ModifyControllerAccess": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "Params": {
+              "$ref": "#/definitions/ModifyControllerAccessRequest"
             },
             "Result": {
-              "$ref": "#/definitions/ControllersChanges"
+              "$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": [
-            "Result",
-            "Error"
+            "watcher-id"
           ]
         },
-        "ControllersChangeResults": {
+        "CloudCredential": {
           "type": "object",
           "properties": {
-            "Results": {
+            "attrs": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "string"
+                }
+              }
+            },
+            "auth-type": {
+              "type": "string"
+            },
+            "redacted": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ControllersChangeResult"
+                "type": "string"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "auth-type"
           ]
         },
-        "ControllersChanges": {
+        "CloudSpec": {
           "type": "object",
           "properties": {
-            "added": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "credential": {
+              "$ref": "#/definitions/CloudCredential"
             },
-            "converted": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "endpoint": {
+              "type": "string"
             },
-            "demoted": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "identity-endpoint": {
+              "type": "string"
             },
-            "maintained": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "name": {
+              "type": "string"
             },
-            "promoted": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "region": {
+              "type": "string"
             },
-            "removed": {
+            "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": {
-                "type": "string"
+                "$ref": "#/definitions/CloudSpecResult"
               }
             }
           },
           "additionalProperties": false
         },
-        "ControllersSpec": {
+        "ConfigValue": {
           "type": "object",
           "properties": {
-            "ModelTag": {
+            "source": {
               "type": "string"
             },
-            "constraints": {
-              "$ref": "#/definitions/Value"
-            },
-            "num-controllers": {
-              "type": "integer"
-            },
-            "placement": {
-              "type": "array",
-              "items": {
-                "type": "string"
+            "value": {
+              "type": "object",
+              "additionalProperties": true
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "value",
+            "source"
+          ]
+        },
+        "ControllerConfigResult": {
+          "type": "object",
+          "properties": {
+            "config": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
               }
-            },
-            "series": {
-              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "ModelTag",
-            "num-controllers"
+            "config"
           ]
         },
-        "ControllersSpecs": {
+        "DestroyControllerArgs": {
+          "type": "object",
+          "properties": {
+            "destroy-models": {
+              "type": "boolean"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "destroy-models"
+          ]
+        },
+        "Entities": {
           "type": "object",
           "properties": {
-            "Specs": {
+            "entities": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ControllersSpec"
+                "$ref": "#/definitions/Entity"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Specs"
+            "entities"
+          ]
+        },
+        "Entity": {
+          "type": "object",
+          "properties": {
+            "tag": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "tag"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
           "additionalProperties": false
         },
-        "HAMember": {
+        "ErrorResult": {
           "type": "object",
           "properties": {
-            "PublicAddress": {
-              "$ref": "#/definitions/Address"
-            },
-            "Series": {
-              "type": "string"
-            },
-            "Tag": {
-              "type": "string"
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Tag",
-            "PublicAddress",
-            "Series"
-          ]
+          "additionalProperties": false
         },
-        "Macaroon": {
+        "ErrorResults": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/ErrorResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "results"
           ]
         },
-        "Member": {
+        "HostedModelConfig": {
           "type": "object",
           "properties": {
-            "Address": {
-              "type": "string"
-            },
-            "Arbiter": {
-              "type": "boolean"
-            },
-            "BuildIndexes": {
-              "type": "boolean"
-            },
-            "Hidden": {
-              "type": "boolean"
-            },
-            "Id": {
-              "type": "integer"
+            "cloud-spec": {
+              "$ref": "#/definitions/CloudSpec"
             },
-            "Priority": {
-              "type": "number"
-            },
-            "SlaveDelay": {
-              "type": "integer"
-            },
-            "Tags": {
+            "config": {
               "type": "object",
               "patternProperties": {
                 ".*": {
-                  "type": "string"
+                  "type": "object",
+                  "additionalProperties": true
                 }
               }
             },
-            "Votes": {
-              "type": "integer"
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "name": {
+              "type": "string"
+            },
+            "owner": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Id",
-            "Address",
-            "Arbiter",
-            "BuildIndexes",
-            "Hidden",
-            "Priority",
-            "Tags",
-            "SlaveDelay",
-            "Votes"
+            "name",
+            "owner"
           ]
         },
-        "MongoUpgradeResults": {
+        "HostedModelConfigsResults": {
           "type": "object",
           "properties": {
-            "Master": {
-              "$ref": "#/definitions/HAMember"
-            },
-            "Members": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/HAMember"
-              }
-            },
-            "RsMembers": {
+            "models": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Member"
+                "$ref": "#/definitions/HostedModelConfig"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "RsMembers",
-            "Master",
-            "Members"
+            "models"
           ]
         },
-        "ResumeReplicationParams": {
+        "InitiateMigrationArgs": {
           "type": "object",
           "properties": {
-            "Members": {
+            "specs": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Member"
+                "$ref": "#/definitions/MigrationSpec"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Members"
+            "specs"
           ]
         },
-        "UpgradeMongoParams": {
+        "InitiateMigrationResult": {
           "type": "object",
           "properties": {
-            "Target": {
-              "$ref": "#/definitions/Version"
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "migration-id": {
+              "type": "string"
+            },
+            "model-tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Target"
+            "model-tag",
+            "migration-id"
           ]
         },
-        "Value": {
+        "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"
             },
-            "container": {
+            "availability-zone": {
               "type": "string"
             },
-            "cpu-cores": {
+            "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
         },
-        "Version": {
+        "MigrationSpec": {
           "type": "object",
           "properties": {
-            "Major": {
-              "type": "integer"
-            },
-            "Minor": {
-              "type": "integer"
+            "external-control": {
+              "type": "boolean"
             },
-            "Patch": {
+            "model-tag": {
               "type": "string"
             },
-            "StorageEngine": {
-              "type": "string"
+            "skip-initial-prechecks": {
+              "type": "boolean"
+            },
+            "target-info": {
+              "$ref": "#/definitions/MigrationTargetInfo"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Major",
-            "Minor",
-            "Patch",
-            "StorageEngine"
+            "model-tag",
+            "target-info",
+            "external-control",
+            "skip-initial-prechecks"
           ]
         },
-        "caveat": {
+        "MigrationTargetInfo": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
+            "addrs": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "auth-tag": {
+              "type": "string"
+            },
+            "ca-cert": {
+              "type": "string"
+            },
+            "controller-tag": {
+              "type": "string"
+            },
+            "macaroons": {
+              "type": "string"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "password": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "controller-tag",
+            "addrs",
+            "ca-cert",
+            "auth-tag"
           ]
         },
-        "packet": {
+        "Model": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
+            "name": {
+              "type": "string"
             },
-            "start": {
-              "type": "integer"
+            "owner-tag": {
+              "type": "string"
             },
-            "totalLen": {
-              "type": "integer"
+            "uuid": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "name",
+            "uuid",
+            "owner-tag"
           ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "HostKeyReporter",
-    "Version": 1,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "ReportKeys": {
+        },
+        "ModelBlockInfo": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/SSHHostKeySet"
+            "blocks": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
-            }
-          }
-        }
-      },
-      "definitions": {
-        "Error": {
-          "type": "object",
-          "properties": {
-            "Code": {
+            "model-uuid": {
               "type": "string"
             },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "name": {
+              "type": "string"
             },
-            "Message": {
+            "owner-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "name",
+            "model-uuid",
+            "owner-tag",
+            "blocks"
           ]
         },
-        "ErrorInfo": {
+        "ModelBlockInfoList": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
-            },
-            "MacaroonPath": {
-              "type": "string"
+            "models": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ModelBlockInfo"
+              }
             }
           },
           "additionalProperties": false
         },
-        "ErrorResult": {
-          "type": "object",
-          "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
-        },
-        "ErrorResults": {
+        "ModelConfigResults": {
           "type": "object",
           "properties": {
-            "Results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ErrorResult"
+            "config": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/ConfigValue"
+                }
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "config"
           ]
         },
-        "Macaroon": {
+        "ModelMachineInfo": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
+            "hardware": {
+              "$ref": "#/definitions/MachineHardware"
             },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "has-vote": {
+              "type": "boolean"
             },
             "id": {
-              "$ref": "#/definitions/packet"
+              "type": "string"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "instance-id": {
+              "type": "string"
             },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "status": {
+              "type": "string"
+            },
+            "wants-vote": {
+              "type": "boolean"
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "id"
           ]
         },
-        "SSHHostKeySet": {
+        "ModelStatus": {
           "type": "object",
           "properties": {
-            "entity-keys": {
+            "application-count": {
+              "type": "integer"
+            },
+            "hosted-machine-count": {
+              "type": "integer"
+            },
+            "life": {
+              "type": "string"
+            },
+            "machines": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/SSHHostKeys"
+                "$ref": "#/definitions/ModelMachineInfo"
               }
+            },
+            "model-tag": {
+              "type": "string"
+            },
+            "owner-tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "entity-keys"
+            "model-tag",
+            "life",
+            "hosted-machine-count",
+            "application-count",
+            "owner-tag"
           ]
         },
-        "SSHHostKeys": {
+        "ModelStatusResults": {
           "type": "object",
           "properties": {
-            "public-keys": {
+            "models": {
               "type": "array",
               "items": {
-                "type": "string"
+                "$ref": "#/definitions/ModelStatus"
               }
-            },
-            "tag": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "tag",
-            "public-keys"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "models"
           ]
         },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "ImageManager",
-    "Version": 2,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "DeleteImages": {
+        "ModelTag": {
           "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/ImageFilterParams"
-            },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
-            }
-          }
+          "additionalProperties": false
         },
-        "ListImages": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/ImageFilterParams"
-            },
-            "Result": {
-              "$ref": "#/definitions/ListImageResult"
-            }
-          }
-        }
-      },
-      "definitions": {
-        "Error": {
+        "ModifyControllerAccess": {
           "type": "object",
           "properties": {
-            "Code": {
+            "access": {
               "type": "string"
             },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
-            },
-            "Message": {
+            "action": {
               "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Message",
-            "Code"
-          ]
-        },
-        "ErrorInfo": {
-          "type": "object",
-          "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "user-tag": {
               "type": "string"
             }
           },
-          "additionalProperties": false
-        },
-        "ErrorResult": {
-          "type": "object",
-          "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            }
-          },
           "additionalProperties": false,
           "required": [
-            "Error"
+            "user-tag",
+            "action",
+            "access"
           ]
         },
-        "ErrorResults": {
+        "ModifyControllerAccessRequest": {
           "type": "object",
           "properties": {
-            "Results": {
+            "changes": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ErrorResult"
+                "$ref": "#/definitions/ModifyControllerAccess"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "changes"
           ]
         },
-        "ImageFilterParams": {
+        "RemoveBlocksArgs": {
           "type": "object",
           "properties": {
-            "images": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ImageSpec"
-              }
+            "all": {
+              "type": "boolean"
             }
           },
           "additionalProperties": false,
           "required": [
-            "images"
+            "all"
           ]
         },
-        "ImageMetadata": {
+        "UserAccess": {
           "type": "object",
           "properties": {
-            "arch": {
-              "type": "string"
-            },
-            "created": {
-              "type": "string",
-              "format": "date-time"
-            },
-            "kind": {
-              "type": "string"
-            },
-            "series": {
+            "access": {
               "type": "string"
             },
-            "url": {
+            "user-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "kind",
-            "arch",
-            "series",
-            "url",
-            "created"
+            "user-tag",
+            "access"
           ]
         },
-        "ImageSpec": {
+        "UserAccessResult": {
           "type": "object",
           "properties": {
-            "arch": {
-              "type": "string"
-            },
-            "kind": {
-              "type": "string"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "series": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "kind",
-            "arch",
-            "series"
-          ]
-        },
-        "ListImageResult": {
-          "type": "object",
-          "properties": {
             "result": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ImageMetadata"
-              }
+              "$ref": "#/definitions/UserAccess"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "result"
-          ]
+          "additionalProperties": false
         },
-        "Macaroon": {
+        "UserAccessResults": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/UserAccessResult"
               }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          "additionalProperties": false
         },
-        "caveat": {
+        "UserModel": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "last-connection": {
+              "type": "string",
+              "format": "date-time"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "model": {
+              "$ref": "#/definitions/Model"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "model",
+            "last-connection"
           ]
         },
-        "packet": {
+        "UserModelList": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
+            "user-models": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/UserModel"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "user-models"
           ]
         }
       }
     }
   },
   {
-    "Name": "ImageMetadata",
-    "Version": 2,
+    "Name": "Deployer",
+    "Version": 1,
     "Schema": {
       "type": "object",
       "properties": {
-        "Delete": {
+        "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/MetadataImageIds"
+              "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/ErrorResults"
+              "$ref": "#/definitions/LifeResults"
             }
           }
         },
-        "List": {
+        "ModelUUID": {
+          "type": "object",
+          "properties": {
+            "Result": {
+              "$ref": "#/definitions/StringResult"
+            }
+          }
+        },
+        "Remove": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/ImageMetadataFilter"
+              "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/ListCloudImageMetadataResult"
+              "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "Save": {
+        "SetPasswords": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/MetadataSaveParams"
+              "$ref": "#/definitions/EntityPasswords"
             },
             "Result": {
               "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "UpdateFromPublishedImages": {
-          "type": "object"
-        }
-      },
-      "definitions": {
-        "CloudImageMetadata": {
+        "SetStatus": {
           "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"
+            "Params": {
+              "$ref": "#/definitions/SetStatus"
             },
-            "virt_type": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "image_id",
-            "region",
-            "version",
-            "series",
-            "arch",
-            "source",
-            "priority"
-          ]
+          }
         },
-        "CloudImageMetadataList": {
+        "StateAddresses": {
           "type": "object",
           "properties": {
-            "metadata": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/CloudImageMetadata"
-              }
+            "Result": {
+              "$ref": "#/definitions/StringsResult"
             }
-          },
-          "additionalProperties": false
+          }
         },
-        "Error": {
+        "UpdateStatus": {
           "type": "object",
           "properties": {
-            "Code": {
-              "type": "string"
-            },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "Params": {
+              "$ref": "#/definitions/SetStatus"
             },
-            "Message": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Message",
-            "Code"
-          ]
+          }
         },
-        "ErrorInfo": {
+        "WatchAPIHostPorts": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
-            },
-            "MacaroonPath": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/NotifyWatchResult"
             }
-          },
-          "additionalProperties": false
+          }
         },
-        "ErrorResult": {
+        "WatchUnits": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/StringsWatchResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
-        },
-        "ErrorResults": {
+          }
+        }
+      },
+      "definitions": {
+        "APIHostPortsResult": {
           "type": "object",
           "properties": {
-            "Results": {
+            "servers": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ErrorResult"
+                "type": "array",
+                "items": {
+                  "$ref": "#/definitions/HostPort"
+                }
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "servers"
           ]
         },
-        "ImageMetadataFilter": {
+        "Address": {
           "type": "object",
           "properties": {
-            "arches": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "region": {
+            "scope": {
               "type": "string"
             },
-            "root-storage-type": {
+            "space-name": {
               "type": "string"
             },
-            "series": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "stream": {
+            "type": {
               "type": "string"
             },
-            "virt_type": {
+            "value": {
               "type": "string"
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "value",
+            "type",
+            "scope"
+          ]
         },
-        "ListCloudImageMetadataResult": {
+        "BytesResult": {
           "type": "object",
           "properties": {
             "result": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/CloudImageMetadata"
+                "type": "integer"
               }
             }
           },
             "result"
           ]
         },
-        "Macaroon": {
+        "DeployerConnectionValues": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
+            "api-addresses": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "type": "string"
               }
             },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
+            "state-addresses": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "type": "string"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "state-addresses",
+            "api-addresses"
           ]
         },
-        "MetadataImageIds": {
+        "Entities": {
           "type": "object",
           "properties": {
-            "image_ids": {
+            "entities": {
               "type": "array",
               "items": {
-                "type": "string"
+                "$ref": "#/definitions/Entity"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "image_ids"
+            "entities"
           ]
         },
-        "MetadataSaveParams": {
+        "Entity": {
           "type": "object",
           "properties": {
-            "metadata": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/CloudImageMetadataList"
-              }
+            "tag": {
+              "type": "string"
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "tag"
+          ]
         },
-        "caveat": {
+        "EntityPassword": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "password": {
+              "type": "string"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "tag",
+            "password"
           ]
         },
-        "packet": {
+        "EntityPasswords": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
+            "changes": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/EntityPassword"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "changes"
           ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "InstancePoller",
-    "Version": 2,
-    "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": {
+        "EntityStatusArgs": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/SetStatus"
+            "data": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
             },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
-            }
-          }
-        },
-        "SetProviderAddresses": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/SetMachinesAddresses"
+            "info": {
+              "type": "string"
             },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
-            }
-          }
-        },
-        "Status": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
+            "status": {
+              "type": "string"
             },
-            "Result": {
-              "$ref": "#/definitions/StatusResults"
-            }
-          }
-        },
-        "WatchForModelConfigChanges": {
-          "type": "object",
-          "properties": {
-            "Result": {
-              "$ref": "#/definitions/NotifyWatchResult"
+            "tag": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "tag",
+            "status",
+            "info",
+            "data"
+          ]
         },
-        "WatchModelMachines": {
-          "type": "object",
-          "properties": {
-            "Result": {
-              "$ref": "#/definitions/StringsWatchResult"
-            }
-          }
-        }
-      },
-      "definitions": {
-        "Address": {
+        "Error": {
           "type": "object",
           "properties": {
-            "Scope": {
-              "type": "string"
-            },
-            "SpaceName": {
+            "code": {
               "type": "string"
             },
-            "Type": {
-              "type": "string"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "Value": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Value",
-            "Type",
-            "Scope"
+            "message",
+            "code"
           ]
         },
-        "BoolResult": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "Result": {
-              "type": "boolean"
+            "macaroon-path": {
+              "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error",
-            "Result"
-          ]
+          "additionalProperties": false
         },
-        "BoolResults": {
+        "ErrorResult": {
           "type": "object",
           "properties": {
-            "Results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/BoolResult"
-              }
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Results"
-          ]
+          "additionalProperties": false
         },
-        "Entities": {
+        "ErrorResults": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Entity"
+                "$ref": "#/definitions/ErrorResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "results"
           ]
         },
-        "Entity": {
+        "HostPort": {
           "type": "object",
           "properties": {
-            "Tag": {
-              "type": "string"
+            "Address": {
+              "$ref": "#/definitions/Address"
+            },
+            "port": {
+              "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "Address",
+            "port"
           ]
         },
-        "EntityStatusArgs": {
+        "LifeResult": {
           "type": "object",
           "properties": {
-            "Data": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
-              }
-            },
-            "Info": {
-              "type": "string"
-            },
-            "Status": {
-              "type": "string"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "Tag": {
+            "life": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag",
-            "Status",
-            "Info",
-            "Data"
+            "life"
           ]
         },
-        "Error": {
+        "LifeResults": {
           "type": "object",
           "properties": {
-            "Code": {
-              "type": "string"
-            },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
-            },
-            "Message": {
-              "type": "string"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/LifeResult"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "results"
           ]
         },
-        "ErrorInfo": {
+        "Macaroon": {
           "type": "object",
-          "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
-            },
-            "MacaroonPath": {
-              "type": "string"
-            }
-          },
           "additionalProperties": false
         },
-        "ErrorResult": {
+        "NotifyWatchResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "NotifyWatcherId": {
+              "type": "string"
+            },
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error"
+            "NotifyWatcherId"
           ]
         },
-        "ErrorResults": {
+        "SetStatus": {
           "type": "object",
           "properties": {
-            "Results": {
+            "entities": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ErrorResult"
+                "$ref": "#/definitions/EntityStatusArgs"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "entities"
           ]
         },
-        "LifeResult": {
+        "StringResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Life": {
+            "result": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Life",
-            "Error"
+            "result"
           ]
         },
-        "LifeResults": {
+        "StringsResult": {
           "type": "object",
           "properties": {
-            "Results": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "result": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/LifeResult"
+                "type": "string"
               }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Results"
-          ]
+          "additionalProperties": false
         },
-        "Macaroon": {
+        "StringsWatchResult": {
           "type": "object",
           "properties": {
-            "caveats": {
+            "changes": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/caveat"
+                "type": "string"
               }
             },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "watcher-id": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "watcher-id"
           ]
         },
-        "MachineAddresses": {
+        "StringsWatchResults": {
           "type": "object",
           "properties": {
-            "Addresses": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Address"
+                "$ref": "#/definitions/StringsWatchResult"
               }
-            },
-            "Tag": {
-              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag",
-            "Addresses"
+            "results"
           ]
+        }
+      }
+    }
+  },
+  {
+    "Name": "DiscoverSpaces",
+    "Version": 2,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "AddSubnets": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/AddSubnetsParams"
+            },
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
+            }
+          }
         },
-        "MachineAddressesResult": {
+        "CreateSpaces": {
           "type": "object",
           "properties": {
-            "Addresses": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/Address"
-              }
+            "Params": {
+              "$ref": "#/definitions/CreateSpacesParams"
             },
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Error",
-            "Addresses"
-          ]
+          }
         },
-        "MachineAddressesResults": {
+        "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": {
-            "Results": {
+            "space-tag": {
+              "type": "string"
+            },
+            "subnet-provider-id": {
+              "type": "string"
+            },
+            "subnet-tag": {
+              "type": "string"
+            },
+            "zones": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/MachineAddressesResult"
+                "type": "string"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "space-tag"
           ]
         },
-        "ModelConfigResult": {
+        "AddSubnetsParams": {
           "type": "object",
           "properties": {
-            "Config": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
+            "subnets": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/AddSubnetParams"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Config"
+            "subnets"
           ]
         },
-        "NotifyWatchResult": {
+        "CreateSpaceParams": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "provider-id": {
+              "type": "string"
             },
-            "NotifyWatcherId": {
+            "public": {
+              "type": "boolean"
+            },
+            "space-tag": {
               "type": "string"
+            },
+            "subnet-tags": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "NotifyWatcherId",
-            "Error"
+            "subnet-tags",
+            "space-tag",
+            "public"
           ]
         },
-        "SetMachinesAddresses": {
+        "CreateSpacesParams": {
           "type": "object",
           "properties": {
-            "MachineAddresses": {
+            "spaces": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/MachineAddresses"
+                "$ref": "#/definitions/CreateSpaceParams"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "MachineAddresses"
+            "spaces"
           ]
         },
-        "SetStatus": {
+        "DiscoverSpacesResults": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/EntityStatusArgs"
+                "$ref": "#/definitions/ProviderSpace"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "results"
           ]
         },
-        "StatusResult": {
+        "Error": {
           "type": "object",
           "properties": {
-            "Data": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
-              }
-            },
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "Id": {
-              "type": "string"
-            },
-            "Info": {
-              "type": "string"
-            },
-            "Life": {
+            "code": {
               "type": "string"
             },
-            "Since": {
-              "type": "string",
-              "format": "date-time"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "Status": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Id",
-            "Life",
-            "Status",
-            "Info",
-            "Data",
-            "Since"
+            "message",
+            "code"
           ]
         },
-        "StatusResults": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/StatusResult"
-              }
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
+            },
+            "macaroon-path": {
+              "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Results"
-          ]
+          "additionalProperties": false
         },
-        "StringResult": {
+        "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
-            },
-            "Result": {
-              "type": "string"
+            }
+          },
+          "additionalProperties": false
+        },
+        "ErrorResults": {
+          "type": "object",
+          "properties": {
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ErrorResult"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Result"
+            "results"
           ]
         },
-        "StringResults": {
+        "ListSubnetsResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/StringResult"
+                "$ref": "#/definitions/Subnet"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
-        "StringsWatchResult": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "ModelConfigResult": {
           "type": "object",
           "properties": {
-            "Changes": {
-              "type": "array",
-              "items": {
-                "type": "string"
+            "config": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
               }
-            },
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "StringsWatcherId": {
-              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "StringsWatcherId",
-            "Changes",
-            "Error"
+            "config"
           ]
         },
-        "caveat": {
+        "ProviderSpace": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "name": {
+              "type": "string"
+            },
+            "provider-id": {
+              "type": "string"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "subnets": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Subnet"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "name",
+            "provider-id",
+            "subnets"
           ]
         },
-        "packet": {
+        "Subnet": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
+            "cidr": {
+              "type": "string"
             },
-            "start": {
-              "type": "integer"
+            "life": {
+              "type": "string"
+            },
+            "provider-id": {
+              "type": "string"
+            },
+            "space-tag": {
+              "type": "string"
+            },
+            "status": {
+              "type": "string"
             },
-            "totalLen": {
+            "vlan-tag": {
               "type": "integer"
+            },
+            "zones": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "cidr",
+            "vlan-tag",
+            "life",
+            "space-tag",
+            "zones"
           ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "KeyManager",
-    "Version": 1,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "AddKeys": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/ModifyUserSSHKeys"
-            },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
-            }
-          }
         },
-        "DeleteKeys": {
+        "SubnetsFilters": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/ModifyUserSSHKeys"
+            "space-tag": {
+              "type": "string"
             },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
+            "zone": {
+              "type": "string"
             }
-          }
-        },
-        "ImportKeys": {
+          },
+          "additionalProperties": false
+        }
+      }
+    }
+  },
+  {
+    "Name": "DiskManager",
+    "Version": 2,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "SetMachineBlockDevices": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/ModifyUserSSHKeys"
+              "$ref": "#/definitions/SetMachineBlockDevices"
             },
             "Result": {
               "$ref": "#/definitions/ErrorResults"
             }
           }
-        },
-        "ListKeys": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/ListSSHKeys"
-            },
-            "Result": {
-              "$ref": "#/definitions/StringsResults"
-            }
-          }
         }
       },
       "definitions": {
-        "Entities": {
+        "BlockDevice": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "BusAddress": {
+              "type": "string"
+            },
+            "DeviceLinks": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Entity"
+                "type": "string"
               }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Entities"
-          ]
-        },
-        "Entity": {
-          "type": "object",
-          "properties": {
-            "Tag": {
+            },
+            "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": [
-            "Tag"
+            "DeviceName",
+            "DeviceLinks",
+            "Label",
+            "UUID",
+            "HardwareId",
+            "BusAddress",
+            "Size",
+            "FilesystemType",
+            "InUse",
+            "MountPoint"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
         "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "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"
+            "results"
           ]
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          "additionalProperties": false
         },
-        "ModifyUserSSHKeys": {
+        "MachineBlockDevices": {
           "type": "object",
           "properties": {
-            "Keys": {
+            "block-devices": {
               "type": "array",
               "items": {
-                "type": "string"
+                "$ref": "#/definitions/BlockDevice"
               }
             },
-            "User": {
+            "machine": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "User",
-            "Keys"
-          ]
-        },
-        "StringsResult": {
-          "type": "object",
-          "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "Result": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Error",
-            "Result"
+            "machine"
           ]
         },
-        "StringsResults": {
+        "SetMachineBlockDevices": {
           "type": "object",
           "properties": {
-            "Results": {
+            "machine-block-devices": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/StringsResult"
+                "$ref": "#/definitions/MachineBlockDevices"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "machine-block-devices"
           ]
         }
       }
     }
   },
   {
-    "Name": "KeyUpdater",
-    "Version": 1,
+    "Name": "EntityWatcher",
+    "Version": 2,
     "Schema": {
       "type": "object",
       "properties": {
-        "AuthorisedKeys": {
+        "Next": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
             "Result": {
-              "$ref": "#/definitions/StringsResults"
+              "$ref": "#/definitions/EntitiesWatchResult"
             }
           }
         },
-        "WatchAuthorisedKeys": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/NotifyWatchResults"
-            }
-          }
+        "Stop": {
+          "type": "object"
         }
       },
       "definitions": {
-        "Entities": {
+        "EntitiesWatchResult": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "changes": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Entity"
+                "type": "string"
               }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Entities"
-          ]
-        },
-        "Entity": {
-          "type": "object",
-          "properties": {
-            "Tag": {
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "watcher-id": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "watcher-id"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
-        },
-        "NotifyWatchResult": {
+          "additionalProperties": false
+        }
+      }
+    }
+  },
+  {
+    "Name": "FilesystemAttachmentsWatcher",
+    "Version": 2,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "Next": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "NotifyWatcherId": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/MachineStorageIdsWatchResult"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "NotifyWatcherId",
-            "Error"
-          ]
+          }
         },
-        "NotifyWatchResults": {
+        "Stop": {
+          "type": "object"
+        }
+      },
+      "definitions": {
+        "Error": {
           "type": "object",
           "properties": {
-            "Results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/NotifyWatchResult"
-              }
+            "code": {
+              "type": "string"
+            },
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
+            },
+            "message": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "message",
+            "code"
           ]
         },
-        "StringsResult": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "Result": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "macaroon-path": {
+              "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error",
-            "Result"
-          ]
+          "additionalProperties": false
         },
-        "StringsResults": {
+        "Macaroon": {
           "type": "object",
-          "properties": {
-            "Results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/StringsResult"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Results"
-          ]
+          "additionalProperties": false
         },
-        "caveat": {
+        "MachineStorageId": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "attachment-tag": {
+              "type": "string"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "machine-tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "machine-tag",
+            "attachment-tag"
           ]
         },
-        "packet": {
+        "MachineStorageIdsWatchResult": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
+            "changes": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/MachineStorageId"
+              }
             },
-            "start": {
-              "type": "integer"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "totalLen": {
-              "type": "integer"
+            "watcher-id": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "watcher-id",
+            "changes"
           ]
         }
       }
     }
   },
   {
-    "Name": "LeadershipService",
-    "Version": 2,
+    "Name": "Firewaller",
+    "Version": 3,
     "Schema": {
       "type": "object",
       "properties": {
-        "BlockUntilLeadershipReleased": {
+        "CloudSpec": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/ServiceTag"
+              "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/ErrorResult"
+              "$ref": "#/definitions/CloudSpecResults"
             }
           }
         },
-        "ClaimLeadership": {
+        "GetAssignedMachine": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/ClaimLeadershipBulkParams"
+              "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/ClaimLeadershipBulkResults"
+              "$ref": "#/definitions/StringResults"
             }
           }
-        }
-      },
-      "definitions": {
-        "ClaimLeadershipBulkParams": {
+        },
+        "GetCloudSpec": {
           "type": "object",
           "properties": {
             "Params": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ClaimLeadershipParams"
-              }
+              "$ref": "#/definitions/ModelTag"
+            },
+            "Result": {
+              "$ref": "#/definitions/CloudSpecResult"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Params"
-          ]
+          }
         },
-        "ClaimLeadershipBulkResults": {
+        "GetExposed": {
           "type": "object",
           "properties": {
-            "Results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ErrorResult"
-              }
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/BoolResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Results"
-          ]
+          }
         },
-        "ClaimLeadershipParams": {
+        "GetMachineActiveSubnets": {
           "type": "object",
           "properties": {
-            "DurationSeconds": {
-              "type": "number"
-            },
-            "ServiceTag": {
-              "type": "string"
+            "Params": {
+              "$ref": "#/definitions/Entities"
             },
-            "UnitTag": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/StringsResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "ServiceTag",
-            "UnitTag",
-            "DurationSeconds"
-          ]
+          }
         },
-        "Error": {
+        "GetMachinePorts": {
           "type": "object",
           "properties": {
-            "Code": {
-              "type": "string"
-            },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "Params": {
+              "$ref": "#/definitions/MachinePortsParams"
             },
-            "Message": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/MachinePortsResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Message",
-            "Code"
-          ]
+          }
         },
-        "ErrorInfo": {
+        "InstanceId": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
+            "Params": {
+              "$ref": "#/definitions/Entities"
             },
-            "MacaroonPath": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/StringResults"
             }
-          },
-          "additionalProperties": false
+          }
         },
-        "ErrorResult": {
+        "Life": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/LifeResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          }
         },
-        "Macaroon": {
+        "ModelConfig": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "Result": {
+              "$ref": "#/definitions/ModelConfigResult"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          }
         },
-        "ServiceTag": {
+        "Watch": {
           "type": "object",
           "properties": {
-            "Name": {
-              "type": "string"
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/NotifyWatchResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Name"
-          ]
+          }
         },
-        "caveat": {
+        "WatchForModelConfigChanges": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "Result": {
+              "$ref": "#/definitions/NotifyWatchResult"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
+          }
         },
-        "packet": {
+        "WatchModelMachines": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
+            "Result": {
+              "$ref": "#/definitions/StringsWatchResult"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "LifeFlag",
-    "Version": 1,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "Life": {
+          }
+        },
+        "WatchOpenedPorts": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/LifeResults"
+              "$ref": "#/definitions/StringsWatchResults"
             }
           }
         },
-        "Watch": {
+        "WatchUnits": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/NotifyWatchResults"
+              "$ref": "#/definitions/StringsWatchResults"
             }
           }
         }
       },
       "definitions": {
-        "Entities": {
+        "BoolResult": {
+          "type": "object",
+          "properties": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "result": {
+              "type": "boolean"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "result"
+          ]
+        },
+        "BoolResults": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Entity"
+                "$ref": "#/definitions/BoolResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "results"
           ]
         },
-        "Entity": {
+        "CloudCredential": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "attrs": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "string"
+                }
+              }
+            },
+            "auth-type": {
               "type": "string"
+            },
+            "redacted": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "auth-type"
           ]
         },
-        "Error": {
+        "CloudSpec": {
           "type": "object",
           "properties": {
-            "Code": {
+            "credential": {
+              "$ref": "#/definitions/CloudCredential"
+            },
+            "endpoint": {
               "type": "string"
             },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "identity-endpoint": {
+              "type": "string"
+            },
+            "name": {
+              "type": "string"
+            },
+            "region": {
+              "type": "string"
             },
-            "Message": {
+            "storage-endpoint": {
+              "type": "string"
+            },
+            "type": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "type",
+            "name"
           ]
         },
-        "ErrorInfo": {
+        "CloudSpecResult": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "MacaroonPath": {
-              "type": "string"
+            "result": {
+              "$ref": "#/definitions/CloudSpec"
             }
           },
           "additionalProperties": false
         },
-        "LifeResult": {
+        "CloudSpecResults": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "Life": {
-              "type": "string"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/CloudSpecResult"
+              }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Life",
-            "Error"
-          ]
+          "additionalProperties": false
         },
-        "LifeResults": {
+        "Entities": {
           "type": "object",
           "properties": {
-            "Results": {
+            "entities": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/LifeResult"
+                "$ref": "#/definitions/Entity"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "entities"
           ]
         },
-        "Macaroon": {
+        "Entity": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
+            "tag": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "tag"
+          ]
+        },
+        "Error": {
+          "type": "object",
+          "properties": {
+            "code": {
+              "type": "string"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "message": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "message",
+            "code"
           ]
         },
-        "NotifyWatchResult": {
+        "ErrorInfo": {
+          "type": "object",
+          "properties": {
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
+            },
+            "macaroon-path": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false
+        },
+        "LifeResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "NotifyWatcherId": {
+            "life": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "NotifyWatcherId",
-            "Error"
+            "life"
           ]
         },
-        "NotifyWatchResults": {
+        "LifeResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/NotifyWatchResult"
+                "$ref": "#/definitions/LifeResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
-        "caveat": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "MachinePortRange": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
+            "port-range": {
+              "$ref": "#/definitions/PortRange"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "relation-tag": {
+              "type": "string"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "unit-tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "unit-tag",
+            "relation-tag",
+            "port-range"
           ]
         },
-        "packet": {
+        "MachinePorts": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
+            "machine-tag": {
+              "type": "string"
             },
-            "totalLen": {
-              "type": "integer"
+            "subnet-tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "machine-tag",
+            "subnet-tag"
           ]
-        }
-      }
-    }
-  },
-  {
-    "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": {
+        "MachinePortsParams": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "params": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Entity"
+                "$ref": "#/definitions/MachinePorts"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "params"
           ]
         },
-        "Entity": {
+        "MachinePortsResult": {
           "type": "object",
           "properties": {
-            "Tag": {
-              "type": "string"
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "ports": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/MachinePortRange"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "ports"
           ]
         },
-        "Error": {
+        "MachinePortsResults": {
           "type": "object",
           "properties": {
-            "Code": {
-              "type": "string"
-            },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
-            },
-            "Message": {
-              "type": "string"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/MachinePortsResult"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "results"
           ]
         },
-        "ErrorInfo": {
+        "ModelConfigResult": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
-            },
-            "MacaroonPath": {
-              "type": "string"
+            "config": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
             }
           },
+          "additionalProperties": false,
+          "required": [
+            "config"
+          ]
+        },
+        "ModelTag": {
+          "type": "object",
           "additionalProperties": false
         },
-        "Macaroon": {
+        "NotifyWatchResult": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
+            "NotifyWatcherId": {
+              "type": "string"
             },
-            "data": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "NotifyWatcherId"
+          ]
+        },
+        "NotifyWatchResults": {
+          "type": "object",
+          "properties": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/NotifyWatchResult"
               }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
+        },
+        "PortRange": {
+          "type": "object",
+          "properties": {
+            "from-port": {
+              "type": "integer"
             },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "protocol": {
+              "type": "string"
             },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "to-port": {
+              "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "from-port",
+            "to-port",
+            "protocol"
           ]
         },
-        "NotifyWatchResult": {
+        "StringResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "NotifyWatcherId": {
+            "result": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "NotifyWatcherId",
-            "Error"
+            "result"
           ]
         },
-        "NotifyWatchResults": {
+        "StringResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/NotifyWatchResult"
+                "$ref": "#/definitions/StringResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
-        "StringResult": {
+        "StringsResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Result": {
-              "type": "string"
+            "result": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error",
-            "Result"
-          ]
+          "additionalProperties": false
         },
-        "StringResults": {
+        "StringsResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/StringResult"
+                "$ref": "#/definitions/StringsResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
-        "caveat": {
+        "StringsWatchResult": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
+            "changes": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "watcher-id": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "watcher-id"
           ]
         },
-        "packet": {
+        "StringsWatchResults": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/StringsWatchResult"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "results"
           ]
         }
       }
     }
   },
   {
-    "Name": "MachineActions",
-    "Version": 1,
+    "Name": "HighAvailability",
+    "Version": 2,
     "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": {
+        "EnableHA": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/ActionExecutionResults"
+              "$ref": "#/definitions/ControllersSpecs"
             },
             "Result": {
-              "$ref": "#/definitions/ErrorResults"
+              "$ref": "#/definitions/ControllersChangeResults"
             }
           }
         },
-        "RunningActions": {
+        "ResumeHAReplicationAfterUpgrade": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/ActionsByReceivers"
+              "$ref": "#/definitions/ResumeReplicationParams"
             }
           }
         },
-        "WatchActionNotifications": {
+        "StopHAReplicationForUpgrade": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/Entities"
+              "$ref": "#/definitions/UpgradeMongoParams"
             },
             "Result": {
-              "$ref": "#/definitions/StringsWatchResults"
+              "$ref": "#/definitions/MongoUpgradeResults"
             }
           }
         }
       },
       "definitions": {
-        "Action": {
+        "Address": {
           "type": "object",
           "properties": {
-            "name": {
+            "Scope": {
               "type": "string"
             },
-            "parameters": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
-              }
+            "SpaceName": {
+              "type": "string"
             },
-            "receiver": {
+            "SpaceProviderId": {
               "type": "string"
             },
-            "tag": {
+            "Type": {
+              "type": "string"
+            },
+            "Value": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "tag",
-            "receiver",
-            "name"
+            "Value",
+            "Type",
+            "Scope",
+            "SpaceName",
+            "SpaceProviderId"
           ]
         },
-        "ActionExecutionResult": {
+        "ControllersChangeResult": {
           "type": "object",
           "properties": {
-            "actiontag": {
-              "type": "string"
-            },
-            "message": {
-              "type": "string"
-            },
-            "results": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
-              }
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "status": {
-              "type": "string"
+            "result": {
+              "$ref": "#/definitions/ControllersChanges"
             }
           },
           "additionalProperties": false,
           "required": [
-            "actiontag",
-            "status"
+            "result"
           ]
         },
-        "ActionExecutionResults": {
+        "ControllersChangeResults": {
           "type": "object",
           "properties": {
             "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ActionExecutionResult"
+                "$ref": "#/definitions/ControllersChangeResult"
               }
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
         },
-        "ActionResult": {
+        "ControllersChanges": {
           "type": "object",
           "properties": {
-            "action": {
-              "$ref": "#/definitions/Action"
-            },
-            "completed": {
-              "type": "string",
-              "format": "date-time"
+            "added": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             },
-            "enqueued": {
-              "type": "string",
-              "format": "date-time"
+            "converted": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             },
-            "error": {
-              "$ref": "#/definitions/Error"
+            "demoted": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             },
-            "message": {
-              "type": "string"
+            "maintained": {
+              "type": "array",
+              "items": {
+                "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": {
+            "promoted": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ActionResult"
+                "type": "string"
               }
             },
-            "error": {
-              "$ref": "#/definitions/Error"
-            },
-            "receiver": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false
-        },
-        "ActionsByReceivers": {
-          "type": "object",
-          "properties": {
-            "actions": {
+            "removed": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ActionsByReceiver"
+                "type": "string"
               }
             }
           },
           "additionalProperties": false
         },
-        "Entities": {
+        "ControllersSpec": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "constraints": {
+              "$ref": "#/definitions/Value"
+            },
+            "num-controllers": {
+              "type": "integer"
+            },
+            "placement": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Entity"
+                "type": "string"
               }
+            },
+            "series": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "num-controllers"
           ]
         },
-        "Entity": {
+        "ControllersSpecs": {
           "type": "object",
           "properties": {
-            "Tag": {
-              "type": "string"
+            "specs": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ControllersSpec"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "specs"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
           "additionalProperties": false
         },
-        "ErrorResult": {
+        "HAMember": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "public-address": {
+              "$ref": "#/definitions/Address"
+            },
+            "series": {
+              "type": "string"
+            },
+            "tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error"
+            "tag",
+            "public-address",
+            "series"
           ]
         },
-        "ErrorResults": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "Member": {
           "type": "object",
           "properties": {
-            "Results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ErrorResult"
+            "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": [
-            "Results"
+            "Id",
+            "Address",
+            "Arbiter",
+            "BuildIndexes",
+            "Hidden",
+            "Priority",
+            "Tags",
+            "SlaveDelay",
+            "Votes"
           ]
         },
-        "Macaroon": {
+        "MongoUpgradeResults": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
+            "ha-members": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/HAMember"
               }
             },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "master": {
+              "$ref": "#/definitions/HAMember"
             },
-            "sig": {
+            "rs-members": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/Member"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "rs-members",
+            "master",
+            "ha-members"
           ]
         },
-        "StringsWatchResult": {
+        "MongoVersion": {
           "type": "object",
           "properties": {
-            "Changes": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "engine": {
+              "type": "string"
             },
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "major": {
+              "type": "integer"
+            },
+            "minor": {
+              "type": "integer"
             },
-            "StringsWatcherId": {
+            "patch": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "StringsWatcherId",
-            "Changes",
-            "Error"
+            "major",
+            "minor",
+            "patch",
+            "engine"
           ]
         },
-        "StringsWatchResults": {
+        "ResumeReplicationParams": {
           "type": "object",
           "properties": {
-            "Results": {
+            "members": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/StringsWatchResult"
+                "$ref": "#/definitions/Member"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "members"
           ]
         },
-        "caveat": {
+        "UpgradeMongoParams": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "target": {
+              "$ref": "#/definitions/MongoVersion"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "target"
           ]
         },
-        "packet": {
+        "Value": {
           "type": "object",
           "properties": {
-            "headerLen": {
+            "arch": {
+              "type": "string"
+            },
+            "container": {
+              "type": "string"
+            },
+            "cores": {
               "type": "integer"
             },
-            "start": {
+            "cpu-power": {
+              "type": "integer"
+            },
+            "instance-type": {
+              "type": "string"
+            },
+            "mem": {
               "type": "integer"
             },
-            "totalLen": {
+            "root-disk": {
               "type": "integer"
+            },
+            "spaces": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "tags": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "virt-type": {
+              "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
+          "additionalProperties": false
         }
       }
     }
   },
   {
-    "Name": "MachineManager",
-    "Version": 2,
+    "Name": "HostKeyReporter",
+    "Version": 1,
     "Schema": {
       "type": "object",
       "properties": {
-        "AddMachines": {
+        "ReportKeys": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/AddMachines"
+              "$ref": "#/definitions/SSHHostKeySet"
             },
             "Result": {
-              "$ref": "#/definitions/AddMachinesResults"
+              "$ref": "#/definitions/ErrorResults"
             }
           }
         }
       },
       "definitions": {
-        "AddMachineParams": {
+        "Error": {
           "type": "object",
           "properties": {
-            "Addrs": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/Address"
-              }
-            },
-            "Constraints": {
-              "$ref": "#/definitions/Value"
-            },
-            "ContainerType": {
-              "type": "string"
-            },
-            "Disks": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/Constraints"
-              }
-            },
-            "HardwareCharacteristics": {
-              "$ref": "#/definitions/HardwareCharacteristics"
-            },
-            "InstanceId": {
-              "type": "string"
-            },
-            "Jobs": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "Nonce": {
-              "type": "string"
-            },
-            "ParentId": {
+            "code": {
               "type": "string"
             },
-            "Placement": {
-              "$ref": "#/definitions/Placement"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "Series": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Series",
-            "Constraints",
-            "Jobs",
-            "Disks",
-            "Placement",
-            "ParentId",
-            "ContainerType",
-            "InstanceId",
-            "Nonce",
-            "HardwareCharacteristics",
-            "Addrs"
+            "message",
+            "code"
           ]
         },
-        "AddMachines": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "MachineParams": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/AddMachineParams"
-              }
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
+            },
+            "macaroon-path": {
+              "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "MachineParams"
-          ]
+          "additionalProperties": false
         },
-        "AddMachinesResult": {
+        "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
-            },
-            "Machine": {
-              "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Machine",
-            "Error"
-          ]
+          "additionalProperties": false
         },
-        "AddMachinesResults": {
+        "ErrorResults": {
           "type": "object",
           "properties": {
-            "Machines": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/AddMachinesResult"
+                "$ref": "#/definitions/ErrorResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Machines"
+            "results"
           ]
         },
-        "Address": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "SSHHostKeySet": {
           "type": "object",
           "properties": {
-            "Scope": {
-              "type": "string"
-            },
-            "SpaceName": {
-              "type": "string"
-            },
-            "Type": {
-              "type": "string"
-            },
-            "Value": {
-              "type": "string"
+            "entity-keys": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/SSHHostKeys"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Value",
-            "Type",
-            "Scope"
+            "entity-keys"
           ]
         },
-        "Constraints": {
+        "SSHHostKeys": {
           "type": "object",
           "properties": {
-            "Count": {
-              "type": "integer"
+            "public-keys": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             },
-            "Pool": {
+            "tag": {
               "type": "string"
-            },
-            "Size": {
-              "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Pool",
-            "Size",
-            "Count"
+            "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": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
           "additionalProperties": false
         },
-        "HardwareCharacteristics": {
+        "ErrorResult": {
           "type": "object",
           "properties": {
-            "Arch": {
-              "type": "string"
-            },
-            "AvailabilityZone": {
-              "type": "string"
-            },
-            "CpuCores": {
-              "type": "integer"
-            },
-            "CpuPower": {
-              "type": "integer"
-            },
-            "Mem": {
-              "type": "integer"
-            },
-            "RootDisk": {
-              "type": "integer"
-            },
-            "Tags": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false
         },
-        "Macaroon": {
+        "ErrorResults": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/ErrorResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "results"
           ]
         },
-        "Placement": {
+        "ImageFilterParams": {
           "type": "object",
           "properties": {
-            "Directive": {
-              "type": "string"
-            },
-            "Scope": {
-              "type": "string"
+            "images": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ImageSpec"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Scope",
-            "Directive"
+            "images"
           ]
         },
-        "Value": {
+        "ImageMetadata": {
           "type": "object",
           "properties": {
             "arch": {
               "type": "string"
             },
-            "container": {
-              "type": "string"
-            },
-            "cpu-cores": {
-              "type": "integer"
-            },
-            "cpu-power": {
-              "type": "integer"
+            "created": {
+              "type": "string",
+              "format": "date-time"
             },
-            "instance-type": {
+            "kind": {
               "type": "string"
             },
-            "mem": {
-              "type": "integer"
-            },
-            "root-disk": {
-              "type": "integer"
-            },
-            "spaces": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "tags": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "series": {
+              "type": "string"
             },
-            "virt-type": {
+            "url": {
               "type": "string"
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "kind",
+            "arch",
+            "series",
+            "url",
+            "created"
+          ]
         },
-        "caveat": {
+        "ImageSpec": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
+            "arch": {
+              "type": "string"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "kind": {
+              "type": "string"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "series": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "kind",
+            "arch",
+            "series"
           ]
         },
-        "packet": {
+        "ListImageResult": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
+            "result": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ImageMetadata"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "result"
           ]
+        },
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
         }
       }
     }
   },
   {
-    "Name": "Machiner",
-    "Version": 1,
+    "Name": "ImageMetadata",
+    "Version": 2,
     "Schema": {
       "type": "object",
       "properties": {
-        "APIAddresses": {
+        "Delete": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/MetadataImageIds"
+            },
             "Result": {
-              "$ref": "#/definitions/StringsResult"
+              "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "APIHostPorts": {
+        "List": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/ImageMetadataFilter"
+            },
             "Result": {
-              "$ref": "#/definitions/APIHostPortsResult"
+              "$ref": "#/definitions/ListCloudImageMetadataResult"
             }
           }
         },
-        "CACert": {
+        "Save": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/MetadataSaveParams"
+            },
             "Result": {
-              "$ref": "#/definitions/BytesResult"
+              "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "EnsureDead": {
+        "UpdateFromPublishedImages": {
+          "type": "object"
+        }
+      },
+      "definitions": {
+        "CloudImageMetadata": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
+            "arch": {
+              "type": "string"
             },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
+            "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"
+          ]
         },
-        "Jobs": {
+        "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/JobsResults"
+              "$ref": "#/definitions/BoolResults"
             }
           }
         },
-        "Life": {
+        "InstanceId": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/LifeResults"
+              "$ref": "#/definitions/StringResults"
             }
           }
         },
-        "ModelUUID": {
+        "InstanceStatus": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
             "Result": {
-              "$ref": "#/definitions/StringResult"
+              "$ref": "#/definitions/StatusResults"
             }
           }
         },
-        "SetMachineAddresses": {
+        "Life": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/SetMachinesAddresses"
+              "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/ErrorResults"
+              "$ref": "#/definitions/LifeResults"
             }
           }
         },
-        "SetObservedNetworkConfig": {
+        "ModelConfig": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/SetMachineNetworkConfig"
+            "Result": {
+              "$ref": "#/definitions/ModelConfigResult"
             }
           }
         },
-        "SetProviderNetworkConfig": {
+        "ProviderAddresses": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/ErrorResults"
+              "$ref": "#/definitions/MachineAddressesResults"
             }
           }
         },
-        "SetStatus": {
+        "SetInstanceStatus": {
           "type": "object",
           "properties": {
             "Params": {
             }
           }
         },
-        "UpdateStatus": {
+        "SetProviderAddresses": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/SetStatus"
+              "$ref": "#/definitions/SetMachinesAddresses"
             },
             "Result": {
               "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "Watch": {
+        "Status": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/NotifyWatchResults"
+              "$ref": "#/definitions/StatusResults"
             }
           }
         },
-        "WatchAPIHostPorts": {
+        "WatchForModelConfigChanges": {
           "type": "object",
           "properties": {
             "Result": {
               "$ref": "#/definitions/NotifyWatchResult"
             }
           }
+        },
+        "WatchModelMachines": {
+          "type": "object",
+          "properties": {
+            "Result": {
+              "$ref": "#/definitions/StringsWatchResult"
+            }
+          }
         }
       },
       "definitions": {
-        "APIHostPortsResult": {
+        "Address": {
           "type": "object",
           "properties": {
-            "Servers": {
-              "type": "array",
-              "items": {
-                "type": "array",
-                "items": {
-                  "$ref": "#/definitions/HostPort"
-                }
-              }
+            "scope": {
+              "type": "string"
+            },
+            "space-name": {
+              "type": "string"
+            },
+            "type": {
+              "type": "string"
+            },
+            "value": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Servers"
+            "value",
+            "type",
+            "scope"
           ]
         },
-        "Address": {
+        "BoolResult": {
           "type": "object",
           "properties": {
-            "Scope": {
-              "type": "string"
-            },
-            "SpaceName": {
-              "type": "string"
-            },
-            "Type": {
-              "type": "string"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "Value": {
-              "type": "string"
+            "result": {
+              "type": "boolean"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Value",
-            "Type",
-            "Scope"
+            "result"
           ]
         },
-        "BytesResult": {
+        "BoolResults": {
           "type": "object",
           "properties": {
-            "Result": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/BoolResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Result"
+            "results"
           ]
         },
         "Entities": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Entity"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "Entity": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "tag"
           ]
         },
         "EntityStatusArgs": {
           "type": "object",
           "properties": {
-            "Data": {
+            "data": {
               "type": "object",
               "patternProperties": {
                 ".*": {
                 }
               }
             },
-            "Info": {
+            "info": {
               "type": "string"
             },
-            "Status": {
+            "status": {
               "type": "string"
             },
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag",
-            "Status",
-            "Info",
-            "Data"
+            "tag",
+            "status",
+            "info",
+            "data"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
         "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ErrorResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
-        "HostPort": {
+        "LifeResult": {
           "type": "object",
           "properties": {
-            "Address": {
-              "$ref": "#/definitions/Address"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "Port": {
-              "type": "integer"
+            "life": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Address",
-            "Port"
+            "life"
           ]
         },
-        "JobsResult": {
+        "LifeResults": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "Jobs": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "string"
+                "$ref": "#/definitions/LifeResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Jobs",
-            "Error"
+            "results"
           ]
         },
-        "JobsResults": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "MachineAddresses": {
           "type": "object",
           "properties": {
-            "Results": {
+            "addresses": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/JobsResult"
+                "$ref": "#/definitions/Address"
               }
+            },
+            "tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "tag",
+            "addresses"
           ]
         },
-        "LifeResult": {
+        "MachineAddressesResult": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "addresses": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Address"
+              }
             },
-            "Life": {
-              "type": "string"
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Life",
-            "Error"
+            "addresses"
           ]
         },
-        "LifeResults": {
+        "MachineAddressesResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/LifeResult"
+                "$ref": "#/definitions/MachineAddressesResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
-        "Macaroon": {
+        "ModelConfigResult": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
+            "config": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
               }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "config"
+          ]
+        },
+        "NotifyWatchResult": {
+          "type": "object",
+          "properties": {
+            "NotifyWatcherId": {
+              "type": "string"
             },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "NotifyWatcherId"
           ]
         },
-        "MachineAddresses": {
+        "SetMachinesAddresses": {
           "type": "object",
           "properties": {
-            "Addresses": {
+            "machine-addresses": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Address"
+                "$ref": "#/definitions/MachineAddresses"
               }
-            },
-            "Tag": {
-              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag",
-            "Addresses"
+            "machine-addresses"
           ]
         },
-        "NetworkConfig": {
+        "SetStatus": {
           "type": "object",
           "properties": {
-            "Address": {
-              "type": "string"
-            },
-            "CIDR": {
-              "type": "string"
-            },
-            "ConfigType": {
-              "type": "string"
-            },
-            "DNSSearchDomains": {
+            "entities": {
               "type": "array",
               "items": {
-                "type": "string"
+                "$ref": "#/definitions/EntityStatusArgs"
               }
-            },
-            "DNSServers": {
-              "type": "array",
-              "items": {
-                "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "entities"
+          ]
+        },
+        "StatusResult": {
+          "type": "object",
+          "properties": {
+            "data": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
               }
             },
-            "DeviceIndex": {
-              "type": "integer"
-            },
-            "Disabled": {
-              "type": "boolean"
-            },
-            "GatewayAddress": {
-              "type": "string"
-            },
-            "InterfaceName": {
-              "type": "string"
-            },
-            "InterfaceType": {
-              "type": "string"
-            },
-            "MACAddress": {
-              "type": "string"
-            },
-            "MTU": {
-              "type": "integer"
-            },
-            "NoAutoStart": {
-              "type": "boolean"
-            },
-            "ParentInterfaceName": {
-              "type": "string"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "ProviderAddressId": {
+            "id": {
               "type": "string"
             },
-            "ProviderId": {
+            "info": {
               "type": "string"
             },
-            "ProviderSpaceId": {
+            "life": {
               "type": "string"
             },
-            "ProviderSubnetId": {
-              "type": "string"
+            "since": {
+              "type": "string",
+              "format": "date-time"
             },
-            "ProviderVLANId": {
+            "status": {
               "type": "string"
-            },
-            "VLANTag": {
-              "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "DeviceIndex",
-            "MACAddress",
-            "CIDR",
-            "MTU",
-            "ProviderId",
-            "ProviderSubnetId",
-            "ProviderSpaceId",
-            "ProviderAddressId",
-            "ProviderVLANId",
-            "VLANTag",
-            "InterfaceName",
-            "ParentInterfaceName",
-            "InterfaceType",
-            "Disabled"
+            "id",
+            "life",
+            "status",
+            "info",
+            "data",
+            "since"
+          ]
+        },
+        "StatusResults": {
+          "type": "object",
+          "properties": {
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/StatusResult"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
           ]
         },
-        "NotifyWatchResult": {
+        "StringResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "NotifyWatcherId": {
+            "result": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "NotifyWatcherId",
-            "Error"
+            "result"
           ]
         },
-        "NotifyWatchResults": {
+        "StringResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/NotifyWatchResult"
+                "$ref": "#/definitions/StringResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
-        "SetMachineNetworkConfig": {
+        "StringsWatchResult": {
           "type": "object",
           "properties": {
-            "Config": {
+            "changes": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/NetworkConfig"
+                "type": "string"
               }
             },
-            "Tag": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "watcher-id": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag",
-            "Config"
+            "watcher-id"
           ]
+        }
+      }
+    }
+  },
+  {
+    "Name": "KeyManager",
+    "Version": 1,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "AddKeys": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/ModifyUserSSHKeys"
+            },
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
+            }
+          }
         },
-        "SetMachinesAddresses": {
+        "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": {
-            "MachineAddresses": {
+            "entities": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/MachineAddresses"
+                "$ref": "#/definitions/Entity"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "MachineAddresses"
+            "entities"
           ]
         },
-        "SetStatus": {
+        "Entity": {
           "type": "object",
           "properties": {
-            "Entities": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/EntityStatusArgs"
-              }
+            "tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "tag"
           ]
         },
-        "StringResult": {
+        "Error": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "code": {
+              "type": "string"
             },
-            "Result": {
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
+            },
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Result"
+            "message",
+            "code"
           ]
         },
-        "StringsResult": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "Result": {
+            "macaroon-path": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false
+        },
+        "ErrorResult": {
+          "type": "object",
+          "properties": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            }
+          },
+          "additionalProperties": false
+        },
+        "ErrorResults": {
+          "type": "object",
+          "properties": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "string"
+                "$ref": "#/definitions/ErrorResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Result"
+            "results"
           ]
         },
-        "caveat": {
+        "ListSSHKeys": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "entities": {
+              "$ref": "#/definitions/Entities"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "mode": {
+              "type": "boolean"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "entities",
+            "mode"
           ]
         },
-        "packet": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "ModifyUserSSHKeys": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
+            "ssh-keys": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             },
-            "start": {
-              "type": "integer"
+            "user": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "user",
+            "ssh-keys"
+          ]
+        },
+        "StringsResult": {
+          "type": "object",
+          "properties": {
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "totalLen": {
-              "type": "integer"
+            "result": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            }
+          },
+          "additionalProperties": false
+        },
+        "StringsResults": {
+          "type": "object",
+          "properties": {
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/StringsResult"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "results"
           ]
         }
       }
     }
   },
   {
-    "Name": "MeterStatus",
+    "Name": "KeyUpdater",
     "Version": 1,
     "Schema": {
       "type": "object",
       "properties": {
-        "GetMeterStatus": {
+        "AuthorisedKeys": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/MeterStatusResults"
+              "$ref": "#/definitions/StringsResults"
             }
           }
         },
-        "WatchMeterStatus": {
+        "WatchAuthorisedKeys": {
           "type": "object",
           "properties": {
             "Params": {
         "Entities": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Entity"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "Entity": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "tag"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          "additionalProperties": false
         },
-        "MeterStatusResult": {
+        "NotifyWatchResult": {
           "type": "object",
           "properties": {
-            "Code": {
+            "NotifyWatcherId": {
               "type": "string"
             },
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
-            },
-            "Info": {
-              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Code",
-            "Info",
-            "Error"
+            "NotifyWatcherId"
           ]
         },
-        "MeterStatusResults": {
+        "NotifyWatchResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/MeterStatusResult"
+                "$ref": "#/definitions/NotifyWatchResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
-        "NotifyWatchResult": {
+        "StringsResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "NotifyWatcherId": {
-              "type": "string"
+            "result": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "NotifyWatcherId",
-            "Error"
-          ]
+          "additionalProperties": false
         },
-        "NotifyWatchResults": {
+        "StringsResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/NotifyWatchResult"
+                "$ref": "#/definitions/StringsResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
-        },
-        "caveat": {
+        }
+      }
+    }
+  },
+  {
+    "Name": "LeadershipService",
+    "Version": 2,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "BlockUntilLeadershipReleased": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "Params": {
+              "$ref": "#/definitions/ApplicationTag"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "Result": {
+              "$ref": "#/definitions/ErrorResult"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
+          }
         },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "MetricsAdder",
-    "Version": 2,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "AddMetricBatches": {
+        "ClaimLeadership": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/MetricBatchParams"
+              "$ref": "#/definitions/ClaimLeadershipBulkParams"
             },
             "Result": {
-              "$ref": "#/definitions/ErrorResults"
+              "$ref": "#/definitions/ClaimLeadershipBulkResults"
             }
           }
         }
       },
       "definitions": {
-        "Error": {
-          "type": "object",
-          "properties": {
-            "Code": {
-              "type": "string"
-            },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
-            },
-            "Message": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Message",
-            "Code"
-          ]
-        },
-        "ErrorInfo": {
+        "ApplicationTag": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
-            },
-            "MacaroonPath": {
+            "Name": {
               "type": "string"
             }
           },
-          "additionalProperties": false
-        },
-        "ErrorResult": {
-          "type": "object",
-          "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            }
-          },
           "additionalProperties": false,
           "required": [
-            "Error"
+            "Name"
           ]
         },
-        "ErrorResults": {
+        "ClaimLeadershipBulkParams": {
           "type": "object",
           "properties": {
-            "Results": {
+            "params": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ErrorResult"
+                "$ref": "#/definitions/ClaimLeadershipParams"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "params"
           ]
         },
-        "Macaroon": {
+        "ClaimLeadershipBulkResults": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/ErrorResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "results"
           ]
         },
-        "Metric": {
+        "ClaimLeadershipParams": {
           "type": "object",
           "properties": {
-            "Key": {
+            "application-tag": {
               "type": "string"
             },
-            "Time": {
-              "type": "string",
-              "format": "date-time"
+            "duration": {
+              "type": "number"
             },
-            "Value": {
+            "unit-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Key",
-            "Value",
-            "Time"
+            "application-tag",
+            "unit-tag",
+            "duration"
           ]
         },
-        "MetricBatch": {
+        "Error": {
           "type": "object",
           "properties": {
-            "CharmURL": {
+            "code": {
               "type": "string"
             },
-            "Created": {
-              "type": "string",
-              "format": "date-time"
-            },
-            "Metrics": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/Metric"
-              }
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "UUID": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "UUID",
-            "CharmURL",
-            "Created",
-            "Metrics"
+            "message",
+            "code"
           ]
         },
-        "MetricBatchParam": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Batch": {
-              "$ref": "#/definitions/MetricBatch"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "Tag": {
+            "macaroon-path": {
               "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Tag",
-            "Batch"
-          ]
-        },
-        "MetricBatchParams": {
-          "type": "object",
-          "properties": {
-            "Batches": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/MetricBatchParam"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Batches"
-          ]
+          "additionalProperties": false
         },
-        "caveat": {
+        "ErrorResult": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
+          "additionalProperties": false
         },
-        "packet": {
+        "Macaroon": {
           "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
+          "additionalProperties": false
         }
       }
     }
   },
   {
-    "Name": "MetricsDebug",
+    "Name": "LifeFlag",
     "Version": 1,
     "Schema": {
       "type": "object",
       "properties": {
-        "GetMetrics": {
+        "Life": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/MetricResults"
+              "$ref": "#/definitions/LifeResults"
             }
           }
         },
-        "SetMeterStatus": {
+        "Watch": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/MeterStatusParams"
+              "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/ErrorResults"
+              "$ref": "#/definitions/NotifyWatchResults"
             }
           }
         }
         "Entities": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Entity"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "Entity": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "tag"
           ]
         },
-        "EntityMetrics": {
-          "type": "object",
-          "properties": {
-            "error": {
-              "$ref": "#/definitions/Error"
-            },
-            "metrics": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/MetricResult"
-              }
-            }
-          },
-          "additionalProperties": false
-        },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
           "additionalProperties": false
         },
-        "ErrorResult": {
+        "LifeResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
+            },
+            "life": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error"
+            "life"
           ]
         },
-        "ErrorResults": {
+        "LifeResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ErrorResult"
+                "$ref": "#/definitions/LifeResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          "additionalProperties": false
         },
-        "MeterStatusParam": {
+        "NotifyWatchResult": {
           "type": "object",
           "properties": {
-            "code": {
-              "type": "string"
-            },
-            "info": {
+            "NotifyWatcherId": {
               "type": "string"
             },
-            "tag": {
-              "type": "string"
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "tag",
-            "code",
-            "info"
+            "NotifyWatcherId"
           ]
         },
-        "MeterStatusParams": {
+        "NotifyWatchResults": {
           "type": "object",
           "properties": {
-            "statues": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/MeterStatusParam"
+                "$ref": "#/definitions/NotifyWatchResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "statues"
-          ]
-        },
-        "MetricResult": {
-          "type": "object",
-          "properties": {
-            "key": {
-              "type": "string"
-            },
-            "time": {
-              "type": "string",
-              "format": "date-time"
-            },
-            "value": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "time",
-            "key",
-            "value"
-          ]
-        },
-        "MetricResults": {
-          "type": "object",
-          "properties": {
-            "results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/EntityMetrics"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "results"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "results"
           ]
         }
       }
     }
   },
   {
-    "Name": "MetricsManager",
+    "Name": "LogForwarding",
     "Version": 1,
     "Schema": {
       "type": "object",
       "properties": {
-        "CleanupOldMetrics": {
+        "GetLastSent": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/Entities"
+              "$ref": "#/definitions/LogForwardingGetLastSentParams"
             },
             "Result": {
-              "$ref": "#/definitions/ErrorResults"
+              "$ref": "#/definitions/LogForwardingGetLastSentResults"
             }
           }
         },
-        "SendMetrics": {
+        "SetLastSent": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/Entities"
+              "$ref": "#/definitions/LogForwardingSetLastSentParams"
             },
             "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": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
         "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ErrorResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
-        "Macaroon": {
+        "LogForwardingGetLastSentParams": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
+            "ids": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/LogForwardingID"
               }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "ids"
+          ]
+        },
+        "LogForwardingGetLastSentResult": {
+          "type": "object",
+          "properties": {
+            "err": {
+              "$ref": "#/definitions/Error"
             },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "record-id": {
+              "type": "integer"
             },
-            "sig": {
+            "record-timestamp": {
+              "type": "integer"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "record-id",
+            "record-timestamp",
+            "err"
+          ]
+        },
+        "LogForwardingGetLastSentResults": {
+          "type": "object",
+          "properties": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/LogForwardingGetLastSentResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "results"
           ]
         },
-        "caveat": {
+        "LogForwardingID": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "model": {
+              "type": "string"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "sink": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "model",
+            "sink"
           ]
         },
-        "packet": {
+        "LogForwardingSetLastSentParam": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
+            "LogForwardingID": {
+              "$ref": "#/definitions/LogForwardingID"
             },
-            "start": {
+            "record-id": {
               "type": "integer"
             },
-            "totalLen": {
+            "record-timestamp": {
               "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "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": "MigrationFlag",
+    "Name": "Logger",
     "Version": 1,
     "Schema": {
       "type": "object",
       "properties": {
-        "Phase": {
+        "LoggingConfig": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/PhaseResults"
+              "$ref": "#/definitions/StringResults"
             }
           }
         },
-        "Watch": {
+        "WatchLoggingConfig": {
           "type": "object",
           "properties": {
             "Params": {
         "Entities": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Entity"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "Entity": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "tag"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          "additionalProperties": false
         },
         "NotifyWatchResult": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
             "NotifyWatcherId": {
               "type": "string"
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "NotifyWatcherId",
-            "Error"
+            "NotifyWatcherId"
           ]
         },
         "NotifyWatchResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/NotifyWatchResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
-        "PhaseResult": {
+        "StringResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "phase": {
+            "result": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "phase",
-            "Error"
+            "result"
           ]
         },
-        "PhaseResults": {
+        "StringResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/PhaseResult"
+                "$ref": "#/definitions/StringResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "results"
           ]
         }
       }
     }
   },
   {
-    "Name": "MigrationMaster",
+    "Name": "MachineActions",
     "Version": 1,
     "Schema": {
       "type": "object",
       "properties": {
-        "Export": {
+        "Actions": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
             "Result": {
-              "$ref": "#/definitions/SerializedModel"
+              "$ref": "#/definitions/ActionResults"
             }
           }
         },
-        "GetMigrationStatus": {
+        "BeginActions": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
             "Result": {
-              "$ref": "#/definitions/FullMigrationStatus"
+              "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "SetPhase": {
+        "FinishActions": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/SetMigrationPhaseArgs"
-            }
+              "$ref": "#/definitions/ActionExecutionResults"
+            },
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
+            }
           }
         },
-        "Watch": {
+        "RunningActions": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
             "Result": {
-              "$ref": "#/definitions/NotifyWatchResult"
+              "$ref": "#/definitions/ActionsByReceivers"
+            }
+          }
+        },
+        "WatchActionNotifications": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/StringsWatchResults"
             }
           }
         }
       },
       "definitions": {
-        "Error": {
+        "Action": {
           "type": "object",
           "properties": {
-            "Code": {
+            "name": {
               "type": "string"
             },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "parameters": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
+            },
+            "receiver": {
+              "type": "string"
             },
-            "Message": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "tag",
+            "receiver",
+            "name"
           ]
         },
-        "ErrorInfo": {
+        "ActionExecutionResult": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
+            "action-tag": {
+              "type": "string"
+            },
+            "message": {
+              "type": "string"
+            },
+            "results": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
             },
-            "MacaroonPath": {
+            "status": {
               "type": "string"
             }
           },
+          "additionalProperties": false,
+          "required": [
+            "action-tag",
+            "status"
+          ]
+        },
+        "ActionExecutionResults": {
+          "type": "object",
+          "properties": {
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ActionExecutionResult"
+              }
+            }
+          },
           "additionalProperties": false
         },
-        "FullMigrationStatus": {
+        "ActionResult": {
           "type": "object",
           "properties": {
-            "attempt": {
-              "type": "integer"
+            "action": {
+              "$ref": "#/definitions/Action"
             },
-            "phase": {
+            "completed": {
+              "type": "string",
+              "format": "date-time"
+            },
+            "enqueued": {
+              "type": "string",
+              "format": "date-time"
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "message": {
               "type": "string"
             },
-            "spec": {
-              "$ref": "#/definitions/ModelMigrationSpec"
+            "output": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
+            },
+            "started": {
+              "type": "string",
+              "format": "date-time"
+            },
+            "status": {
+              "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "spec",
-            "attempt",
-            "phase"
-          ]
+          "additionalProperties": false
         },
-        "Macaroon": {
+        "ActionResults": {
           "type": "object",
           "properties": {
-            "caveats": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/caveat"
+                "$ref": "#/definitions/ActionResult"
               }
-            },
-            "data": {
+            }
+          },
+          "additionalProperties": false
+        },
+        "ActionsByReceiver": {
+          "type": "object",
+          "properties": {
+            "actions": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/ActionResult"
               }
             },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "sig": {
+            "receiver": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false
+        },
+        "ActionsByReceivers": {
+          "type": "object",
+          "properties": {
+            "actions": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/ActionsByReceiver"
+              }
+            }
+          },
+          "additionalProperties": false
+        },
+        "Entities": {
+          "type": "object",
+          "properties": {
+            "entities": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Entity"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "entities"
           ]
         },
-        "ModelMigrationSpec": {
+        "Entity": {
           "type": "object",
           "properties": {
-            "model-tag": {
+            "tag": {
               "type": "string"
-            },
-            "target-info": {
-              "$ref": "#/definitions/ModelMigrationTargetInfo"
             }
           },
           "additionalProperties": false,
           "required": [
-            "model-tag",
-            "target-info"
+            "tag"
           ]
         },
-        "ModelMigrationTargetInfo": {
+        "Error": {
           "type": "object",
           "properties": {
-            "addrs": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "auth-tag": {
-              "type": "string"
-            },
-            "ca-cert": {
+            "code": {
               "type": "string"
             },
-            "controller-tag": {
-              "type": "string"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "password": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "controller-tag",
-            "addrs",
-            "ca-cert",
-            "auth-tag",
-            "password"
+            "message",
+            "code"
           ]
         },
-        "NotifyWatchResult": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "NotifyWatcherId": {
+            "macaroon-path": {
               "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "NotifyWatcherId",
-            "Error"
-          ]
+          "additionalProperties": false
         },
-        "SerializedModel": {
+        "ErrorResult": {
           "type": "object",
           "properties": {
-            "bytes": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "bytes"
-          ]
+          "additionalProperties": false
         },
-        "SetMigrationPhaseArgs": {
+        "ErrorResults": {
           "type": "object",
           "properties": {
-            "phase": {
-              "type": "string"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ErrorResult"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "phase"
+            "results"
           ]
         },
-        "caveat": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "StringsWatchResult": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
+            "changes": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "watcher-id": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "watcher-id"
           ]
         },
-        "packet": {
+        "StringsWatchResults": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/StringsWatchResult"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "results"
           ]
         }
       }
     }
   },
   {
-    "Name": "MigrationMinion",
-    "Version": 1,
+    "Name": "MachineManager",
+    "Version": 2,
     "Schema": {
       "type": "object",
       "properties": {
-        "Watch": {
+        "AddMachines": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/AddMachines"
+            },
             "Result": {
-              "$ref": "#/definitions/NotifyWatchResult"
+              "$ref": "#/definitions/AddMachinesResults"
             }
           }
         }
       },
       "definitions": {
-        "Error": {
+        "AddMachineParams": {
           "type": "object",
           "properties": {
-            "Code": {
+            "addresses": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Address"
+              }
+            },
+            "constraints": {
+              "$ref": "#/definitions/Value"
+            },
+            "container-type": {
               "type": "string"
             },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "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"
             },
-            "Message": {
+            "parent-id": {
+              "type": "string"
+            },
+            "placement": {
+              "$ref": "#/definitions/Placement"
+            },
+            "series": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "series",
+            "constraints",
+            "jobs",
+            "parent-id",
+            "container-type",
+            "instance-id",
+            "nonce",
+            "hardware-characteristics",
+            "addresses"
           ]
         },
-        "ErrorInfo": {
+        "AddMachines": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
+            "params": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/AddMachineParams"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "params"
+          ]
+        },
+        "AddMachinesResult": {
+          "type": "object",
+          "properties": {
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "MacaroonPath": {
+            "machine": {
               "type": "string"
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "machine"
+          ]
         },
-        "Macaroon": {
+        "AddMachinesResults": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
+            "machines": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/AddMachinesResult"
               }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "machines"
+          ]
+        },
+        "Address": {
+          "type": "object",
+          "properties": {
+            "scope": {
+              "type": "string"
             },
-            "id": {
-              "$ref": "#/definitions/packet"
+            "space-name": {
+              "type": "string"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "type": {
+              "type": "string"
             },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "value": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "value",
+            "type",
+            "scope"
           ]
         },
-        "NotifyWatchResult": {
+        "Constraints": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "Count": {
+              "type": "integer"
             },
-            "NotifyWatcherId": {
+            "Pool": {
               "type": "string"
+            },
+            "Size": {
+              "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "NotifyWatcherId",
-            "Error"
+            "Pool",
+            "Size",
+            "Count"
           ]
         },
-        "caveat": {
+        "Error": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
+            "code": {
+              "type": "string"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "message": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "message",
+            "code"
           ]
         },
-        "packet": {
+        "ErrorInfo": {
+          "type": "object",
+          "properties": {
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
+            },
+            "macaroon-path": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false
+        },
+        "HardwareCharacteristics": {
           "type": "object",
           "properties": {
-            "headerLen": {
+            "arch": {
+              "type": "string"
+            },
+            "availability-zone": {
+              "type": "string"
+            },
+            "cpu-cores": {
               "type": "integer"
             },
-            "start": {
+            "cpu-power": {
+              "type": "integer"
+            },
+            "mem": {
               "type": "integer"
             },
-            "totalLen": {
+            "root-disk": {
               "type": "integer"
+            },
+            "tags": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "MigrationStatusWatcher",
-    "Version": 1,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "Next": {
+          "additionalProperties": false
+        },
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "Placement": {
           "type": "object",
           "properties": {
-            "Result": {
-              "$ref": "#/definitions/MigrationStatus"
+            "directive": {
+              "type": "string"
+            },
+            "scope": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "scope",
+            "directive"
+          ]
         },
-        "Stop": {
-          "type": "object"
-        }
-      },
-      "definitions": {
-        "MigrationStatus": {
+        "Value": {
           "type": "object",
           "properties": {
-            "attempt": {
+            "arch": {
+              "type": "string"
+            },
+            "container": {
+              "type": "string"
+            },
+            "cores": {
               "type": "integer"
             },
-            "phase": {
+            "cpu-power": {
+              "type": "integer"
+            },
+            "instance-type": {
               "type": "string"
             },
-            "source-api-addrs": {
+            "mem": {
+              "type": "integer"
+            },
+            "root-disk": {
+              "type": "integer"
+            },
+            "spaces": {
               "type": "array",
               "items": {
                 "type": "string"
               }
             },
-            "source-ca-cert": {
-              "type": "string"
-            },
-            "target-api-addrs": {
+            "tags": {
               "type": "array",
               "items": {
                 "type": "string"
               }
             },
-            "target-ca-cert": {
+            "virt-type": {
               "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "attempt",
-            "phase",
-            "source-api-addrs",
-            "source-ca-cert",
-            "target-api-addrs",
-            "target-ca-cert"
-          ]
+          "additionalProperties": false
         }
       }
     }
   },
   {
-    "Name": "MigrationTarget",
+    "Name": "MachineUndertaker",
     "Version": 1,
     "Schema": {
       "type": "object",
       "properties": {
-        "Abort": {
+        "AllMachineRemovals": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/ModelArgs"
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/EntitiesResults"
             }
           }
         },
-        "Activate": {
+        "CompleteMachineRemovals": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/ModelArgs"
+              "$ref": "#/definitions/Entities"
             }
           }
         },
-        "Import": {
+        "GetMachineProviderInterfaceInfo": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/SerializedModel"
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/ProviderInterfaceInfoResults"
+            }
+          }
+        },
+        "WatchMachineRemovals": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/NotifyWatchResults"
             }
           }
         }
       },
       "definitions": {
-        "ModelArgs": {
+        "Entities": {
           "type": "object",
           "properties": {
-            "model-tag": {
-              "type": "string"
+            "entities": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Entity"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "model-tag"
+            "entities"
           ]
         },
-        "SerializedModel": {
+        "EntitiesResult": {
           "type": "object",
           "properties": {
-            "bytes": {
+            "entities": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/Entity"
               }
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "bytes"
+            "entities"
           ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "ModelManager",
-    "Version": 2,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "ConfigSkeleton": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/ModelSkeletonConfigArgs"
-            },
-            "Result": {
-              "$ref": "#/definitions/ModelConfigResult"
-            }
-          }
-        },
-        "CreateModel": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/ModelCreateArgs"
-            },
-            "Result": {
-              "$ref": "#/definitions/Model"
-            }
-          }
-        },
-        "ListModels": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entity"
-            },
-            "Result": {
-              "$ref": "#/definitions/UserModelList"
-            }
-          }
         },
-        "ModelInfo": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/ModelInfoResults"
-            }
-          }
-        },
-        "ModifyModelAccess": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/ModifyModelAccessRequest"
-            },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
-            }
-          }
-        }
-      },
-      "definitions": {
-        "Entities": {
+        "EntitiesResults": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Entity"
+                "$ref": "#/definitions/EntitiesResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "results"
           ]
         },
         "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": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Status",
-            "Info",
-            "Data",
-            "Since"
+            "tag"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
           "additionalProperties": false
         },
-        "ErrorResult": {
+        "Macaroon": {
           "type": "object",
-          "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
-        "ErrorResults": {
+        "NotifyWatchResult": {
           "type": "object",
           "properties": {
-            "Results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ErrorResult"
-              }
+            "NotifyWatcherId": {
+              "type": "string"
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "NotifyWatcherId"
           ]
         },
-        "Macaroon": {
+        "NotifyWatchResults": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/NotifyWatchResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "results"
           ]
         },
-        "Model": {
+        "ProviderInterfaceInfo": {
           "type": "object",
           "properties": {
-            "Name": {
+            "interface-name": {
               "type": "string"
             },
-            "OwnerTag": {
+            "mac-address": {
               "type": "string"
             },
-            "UUID": {
+            "provider-id": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Name",
-            "UUID",
-            "OwnerTag"
-          ]
-        },
-        "ModelConfigResult": {
-          "type": "object",
-          "properties": {
-            "Config": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Config"
+            "interface-name",
+            "mac-address",
+            "provider-id"
           ]
         },
-        "ModelCreateArgs": {
+        "ProviderInterfaceInfoResult": {
           "type": "object",
           "properties": {
-            "Account": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
-              }
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "Config": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
+            "interfaces": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ProviderInterfaceInfo"
               }
             },
-            "OwnerTag": {
+            "machine-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "OwnerTag",
-            "Account",
-            "Config"
+            "machine-tag",
+            "interfaces"
           ]
         },
-        "ModelInfo": {
+        "ProviderInterfaceInfoResults": {
           "type": "object",
           "properties": {
-            "DefaultSeries": {
-              "type": "string"
-            },
-            "Life": {
-              "type": "string"
-            },
-            "Name": {
-              "type": "string"
-            },
-            "OwnerTag": {
-              "type": "string"
-            },
-            "ProviderType": {
-              "type": "string"
-            },
-            "ServerUUID": {
-              "type": "string"
-            },
-            "Status": {
-              "$ref": "#/definitions/EntityStatus"
-            },
-            "UUID": {
-              "type": "string"
-            },
-            "Users": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ModelUserInfo"
+                "$ref": "#/definitions/ProviderInterfaceInfoResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Name",
-            "UUID",
-            "ServerUUID",
-            "ProviderType",
-            "DefaultSeries",
-            "OwnerTag",
-            "Life",
-            "Status",
-            "Users"
+            "results"
           ]
-        },
-        "ModelInfoResult": {
+        }
+      }
+    }
+  },
+  {
+    "Name": "Machiner",
+    "Version": 1,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "APIAddresses": {
           "type": "object",
           "properties": {
-            "error": {
-              "$ref": "#/definitions/Error"
-            },
-            "result": {
-              "$ref": "#/definitions/ModelInfo"
+            "Result": {
+              "$ref": "#/definitions/StringsResult"
             }
-          },
-          "additionalProperties": false
+          }
         },
-        "ModelInfoResults": {
+        "APIHostPorts": {
           "type": "object",
           "properties": {
-            "results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ModelInfoResult"
-              }
+            "Result": {
+              "$ref": "#/definitions/APIHostPortsResult"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "results"
-          ]
+          }
         },
-        "ModelSkeletonConfigArgs": {
+        "CACert": {
           "type": "object",
           "properties": {
-            "Provider": {
-              "type": "string"
-            },
-            "Region": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Provider",
-            "Region"
-          ]
-        },
-        "ModelUserInfo": {
-          "type": "object",
-          "properties": {
-            "access": {
-              "type": "string"
-            },
-            "displayname": {
-              "type": "string"
-            },
-            "lastconnection": {
-              "type": "string",
-              "format": "date-time"
-            },
-            "user": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "user",
-            "displayname",
-            "lastconnection",
-            "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"
-          ]
-        },
-        "UserModel": {
-          "type": "object",
-          "properties": {
-            "LastConnection": {
-              "type": "string",
-              "format": "date-time"
-            },
-            "Model": {
-              "$ref": "#/definitions/Model"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Model",
-            "LastConnection"
-          ]
-        },
-        "UserModelList": {
-          "type": "object",
-          "properties": {
-            "UserModels": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/UserModel"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "UserModels"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "NotifyWatcher",
-    "Version": 1,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "Next": {
-          "type": "object"
-        },
-        "Stop": {
-          "type": "object"
-        }
-      }
-    }
-  },
-  {
-    "Name": "Pinger",
-    "Version": 1,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "Ping": {
-          "type": "object"
-        },
-        "Stop": {
-          "type": "object"
-        }
-      }
-    }
-  },
-  {
-    "Name": "Provisioner",
-    "Version": 2,
-    "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"
+            "Result": {
+              "$ref": "#/definitions/BytesResult"
             }
           }
         },
-        "Constraints": {
+        "EnsureDead": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/ConstraintsResults"
+              "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "ContainerConfig": {
+        "Jobs": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
             "Result": {
-              "$ref": "#/definitions/ContainerConfig"
+              "$ref": "#/definitions/JobsResults"
             }
           }
         },
-        "ContainerManagerConfig": {
+        "Life": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/ContainerManagerConfigParams"
+              "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/ContainerManagerConfig"
+              "$ref": "#/definitions/LifeResults"
             }
           }
         },
-        "DistributionGroup": {
+        "ModelUUID": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
             "Result": {
-              "$ref": "#/definitions/DistributionGroupResults"
+              "$ref": "#/definitions/StringResult"
             }
           }
         },
-        "EnsureDead": {
+        "SetMachineAddresses": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/Entities"
+              "$ref": "#/definitions/SetMachinesAddresses"
             },
             "Result": {
               "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "FindTools": {
+        "SetObservedNetworkConfig": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/FindToolsParams"
-            },
-            "Result": {
-              "$ref": "#/definitions/FindToolsResult"
+              "$ref": "#/definitions/SetMachineNetworkConfig"
             }
           }
         },
-        "GetContainerInterfaceInfo": {
+        "SetProviderNetworkConfig": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/MachineNetworkConfigResults"
+              "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "InstanceId": {
+        "SetStatus": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/Entities"
+              "$ref": "#/definitions/SetStatus"
             },
             "Result": {
-              "$ref": "#/definitions/StringResults"
+              "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "InstanceStatus": {
+        "UpdateStatus": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/Entities"
+              "$ref": "#/definitions/SetStatus"
             },
             "Result": {
-              "$ref": "#/definitions/StatusResults"
+              "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "Life": {
+        "Watch": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/LifeResults"
+              "$ref": "#/definitions/NotifyWatchResults"
             }
           }
         },
-        "MachinesWithTransientErrors": {
+        "WatchAPIHostPorts": {
           "type": "object",
           "properties": {
             "Result": {
-              "$ref": "#/definitions/StatusResults"
+              "$ref": "#/definitions/NotifyWatchResult"
             }
           }
-        },
-        "ModelConfig": {
+        }
+      },
+      "definitions": {
+        "APIHostPortsResult": {
           "type": "object",
           "properties": {
-            "Result": {
-              "$ref": "#/definitions/ModelConfigResult"
+            "servers": {
+              "type": "array",
+              "items": {
+                "type": "array",
+                "items": {
+                  "$ref": "#/definitions/HostPort"
+                }
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "servers"
+          ]
         },
-        "ModelUUID": {
+        "Address": {
           "type": "object",
           "properties": {
-            "Result": {
-              "$ref": "#/definitions/StringResult"
+            "scope": {
+              "type": "string"
+            },
+            "space-name": {
+              "type": "string"
+            },
+            "type": {
+              "type": "string"
+            },
+            "value": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "value",
+            "type",
+            "scope"
+          ]
         },
-        "PrepareContainerInterfaceInfo": {
+        "BytesResult": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/MachineNetworkConfigResults"
+            "result": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "result"
+          ]
         },
-        "ProvisioningInfo": {
+        "Entities": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/ProvisioningInfoResults"
+            "entities": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Entity"
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "entities"
+          ]
         },
-        "ReleaseContainerAddresses": {
+        "Entity": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
+            "tag": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "tag"
+          ]
         },
-        "Remove": {
+        "EntityStatusArgs": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
+            "data": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
             },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
+            "info": {
+              "type": "string"
+            },
+            "status": {
+              "type": "string"
+            },
+            "tag": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "tag",
+            "status",
+            "info",
+            "data"
+          ]
         },
-        "Series": {
+        "Error": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
+            "code": {
+              "type": "string"
             },
-            "Result": {
-              "$ref": "#/definitions/StringResults"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
+            },
+            "message": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "message",
+            "code"
+          ]
         },
-        "SetInstanceInfo": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/InstancesInfo"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
+            "macaroon-path": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false
         },
-        "SetInstanceStatus": {
+        "ErrorResult": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/SetStatus"
-            },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
+            "error": {
+              "$ref": "#/definitions/Error"
             }
-          }
+          },
+          "additionalProperties": false
         },
-        "SetPasswords": {
+        "ErrorResults": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/EntityPasswords"
-            },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ErrorResult"
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
         },
-        "SetStatus": {
+        "HostPort": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/SetStatus"
+            "Address": {
+              "$ref": "#/definitions/Address"
             },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
+            "port": {
+              "type": "integer"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "Address",
+            "port"
+          ]
         },
-        "SetSupportedContainers": {
+        "JobsResult": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/MachineContainersParams"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
+            "jobs": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "jobs"
+          ]
         },
-        "StateAddresses": {
+        "JobsResults": {
           "type": "object",
           "properties": {
-            "Result": {
-              "$ref": "#/definitions/StringsResult"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/JobsResult"
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
         },
-        "Status": {
+        "LifeResult": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "Result": {
-              "$ref": "#/definitions/StatusResults"
+            "life": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "life"
+          ]
         },
-        "Tools": {
+        "LifeResults": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/ToolsResults"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/LifeResult"
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
         },
-        "UpdateStatus": {
+        "Macaroon": {
           "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/SetStatus"
-            },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
-            }
-          }
+          "additionalProperties": false
         },
-        "WatchAPIHostPorts": {
+        "MachineAddresses": {
           "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"
-                }
-              }
+            "addresses": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Address"
+              }
+            },
+            "tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Servers"
+            "tag",
+            "addresses"
           ]
         },
-        "Address": {
+        "NetworkConfig": {
           "type": "object",
           "properties": {
-            "Scope": {
+            "address": {
               "type": "string"
             },
-            "SpaceName": {
+            "cidr": {
               "type": "string"
             },
-            "Type": {
+            "config-type": {
               "type": "string"
             },
-            "Value": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Value",
-            "Type",
-            "Scope"
-          ]
-        },
-        "Binary": {
-          "type": "object",
-          "properties": {
-            "Arch": {
-              "type": "string"
+            "device-index": {
+              "type": "integer"
             },
-            "Number": {
-              "$ref": "#/definitions/Number"
+            "disabled": {
+              "type": "boolean"
             },
-            "Series": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Number",
-            "Series",
-            "Arch"
-          ]
-        },
-        "BytesResult": {
-          "type": "object",
-          "properties": {
-            "Result": {
+            "dns-search-domains": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "type": "string"
               }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Result"
-          ]
-        },
-        "CloudImageMetadata": {
-          "type": "object",
-          "properties": {
-            "arch": {
+            },
+            "dns-servers": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "gateway-address": {
               "type": "string"
             },
-            "image_id": {
+            "interface-name": {
               "type": "string"
             },
-            "priority": {
-              "type": "integer"
+            "interface-type": {
+              "type": "string"
             },
-            "region": {
+            "mac-address": {
               "type": "string"
             },
-            "root_storage_size": {
+            "mtu": {
               "type": "integer"
             },
-            "root_storage_type": {
+            "no-auto-start": {
+              "type": "boolean"
+            },
+            "parent-interface-name": {
               "type": "string"
             },
-            "series": {
+            "provider-address-id": {
               "type": "string"
             },
-            "source": {
+            "provider-id": {
               "type": "string"
             },
-            "stream": {
+            "provider-space-id": {
               "type": "string"
             },
-            "version": {
+            "provider-subnet-id": {
               "type": "string"
             },
-            "virt_type": {
+            "provider-vlan-id": {
               "type": "string"
+            },
+            "vlan-tag": {
+              "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "image_id",
-            "region",
-            "version",
-            "series",
-            "arch",
-            "source",
-            "priority"
+            "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"
           ]
         },
-        "ConstraintsResult": {
+        "NotifyWatchResult": {
           "type": "object",
           "properties": {
-            "Constraints": {
-              "$ref": "#/definitions/Value"
+            "NotifyWatcherId": {
+              "type": "string"
             },
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Constraints"
+            "NotifyWatcherId"
           ]
         },
-        "ConstraintsResults": {
+        "NotifyWatchResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ConstraintsResult"
+                "$ref": "#/definitions/NotifyWatchResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
-        "ContainerConfig": {
+        "SetMachineNetworkConfig": {
           "type": "object",
           "properties": {
-            "AllowLXCLoopMounts": {
-              "type": "boolean"
-            },
-            "AptMirror": {
-              "type": "string"
-            },
-            "AptProxy": {
-              "$ref": "#/definitions/Settings"
-            },
-            "AuthorizedKeys": {
-              "type": "string"
-            },
-            "PreferIPv6": {
-              "type": "boolean"
+            "config": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/NetworkConfig"
+              }
             },
-            "ProviderType": {
+            "tag": {
               "type": "string"
-            },
-            "Proxy": {
-              "$ref": "#/definitions/Settings"
-            },
-            "SSLHostnameVerification": {
-              "type": "boolean"
-            },
-            "UpdateBehavior": {
-              "$ref": "#/definitions/UpdateBehavior"
             }
           },
           "additionalProperties": false,
           "required": [
-            "ProviderType",
-            "AuthorizedKeys",
-            "SSLHostnameVerification",
-            "Proxy",
-            "AptProxy",
-            "AptMirror",
-            "PreferIPv6",
-            "AllowLXCLoopMounts",
-            "UpdateBehavior"
+            "tag",
+            "config"
           ]
         },
-        "ContainerManagerConfig": {
+        "SetMachinesAddresses": {
           "type": "object",
           "properties": {
-            "ManagerConfig": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "string"
-                }
+            "machine-addresses": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/MachineAddresses"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "ManagerConfig"
+            "machine-addresses"
           ]
         },
-        "ContainerManagerConfigParams": {
+        "SetStatus": {
           "type": "object",
           "properties": {
-            "Type": {
-              "type": "string"
+            "entities": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/EntityStatusArgs"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Type"
+            "entities"
           ]
         },
-        "DistributionGroupResult": {
+        "StringResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Result": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "result": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Result"
+            "result"
           ]
         },
-        "DistributionGroupResults": {
+        "StringsResult": {
           "type": "object",
           "properties": {
-            "Results": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "result": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/DistributionGroupResult"
+                "type": "string"
               }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Results"
-          ]
+          "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": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Entity"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "Entity": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "tag"
           ]
         },
-        "EntityPassword": {
+        "Error": {
           "type": "object",
           "properties": {
-            "Password": {
+            "code": {
               "type": "string"
             },
-            "Tag": {
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
+            },
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag",
-            "Password"
+            "message",
+            "code"
           ]
         },
-        "EntityPasswords": {
+        "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": {
-            "Changes": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/EntityPassword"
+                "$ref": "#/definitions/MeterStatusResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Changes"
+            "results"
           ]
         },
-        "EntityStatusArgs": {
+        "NotifyWatchResult": {
           "type": "object",
           "properties": {
-            "Data": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
-              }
-            },
-            "Info": {
-              "type": "string"
-            },
-            "Status": {
+            "NotifyWatcherId": {
               "type": "string"
             },
-            "Tag": {
-              "type": "string"
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag",
-            "Status",
-            "Info",
-            "Data"
+            "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": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
         "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ErrorResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
-        "FindToolsParams": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "Metric": {
           "type": "object",
           "properties": {
-            "Arch": {
+            "key": {
               "type": "string"
             },
-            "MajorVersion": {
-              "type": "integer"
-            },
-            "MinorVersion": {
-              "type": "integer"
-            },
-            "Number": {
-              "$ref": "#/definitions/Number"
+            "time": {
+              "type": "string",
+              "format": "date-time"
             },
-            "Series": {
+            "value": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Number",
-            "MajorVersion",
-            "MinorVersion",
-            "Arch",
-            "Series"
+            "key",
+            "value",
+            "time"
           ]
         },
-        "FindToolsResult": {
+        "MetricBatch": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "charm-url": {
+              "type": "string"
             },
-            "List": {
+            "created": {
+              "type": "string",
+              "format": "date-time"
+            },
+            "metrics": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Tools"
+                "$ref": "#/definitions/Metric"
               }
+            },
+            "uuid": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "List",
-            "Error"
+            "uuid",
+            "charm-url",
+            "created",
+            "metrics"
           ]
         },
-        "HardwareCharacteristics": {
+        "MetricBatchParam": {
           "type": "object",
           "properties": {
-            "Arch": {
-              "type": "string"
+            "batch": {
+              "$ref": "#/definitions/MetricBatch"
             },
-            "AvailabilityZone": {
+            "tag": {
               "type": "string"
-            },
-            "CpuCores": {
-              "type": "integer"
-            },
-            "CpuPower": {
-              "type": "integer"
-            },
-            "Mem": {
-              "type": "integer"
-            },
-            "RootDisk": {
-              "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"
+            "tag",
+            "batch"
           ]
         },
-        "InstanceInfo": {
+        "MetricBatchParams": {
           "type": "object",
           "properties": {
-            "Characteristics": {
-              "$ref": "#/definitions/HardwareCharacteristics"
-            },
-            "InstanceId": {
-              "type": "string"
-            },
-            "NetworkConfig": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/NetworkConfig"
-              }
-            },
-            "Nonce": {
-              "type": "string"
-            },
-            "Tag": {
-              "type": "string"
-            },
-            "VolumeAttachments": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "$ref": "#/definitions/VolumeAttachmentInfo"
-                }
-              }
-            },
-            "Volumes": {
+            "batches": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Volume"
+                "$ref": "#/definitions/MetricBatchParam"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag",
-            "InstanceId",
-            "Nonce",
-            "Characteristics",
-            "Volumes",
-            "VolumeAttachments",
-            "NetworkConfig"
+            "batches"
           ]
+        }
+      }
+    }
+  },
+  {
+    "Name": "MetricsDebug",
+    "Version": 2,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "GetMetrics": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/MetricResults"
+            }
+          }
         },
-        "InstancesInfo": {
+        "SetMeterStatus": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/MeterStatusParams"
+            },
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
+            }
+          }
+        }
+      },
+      "definitions": {
+        "Entities": {
           "type": "object",
           "properties": {
-            "Machines": {
+            "entities": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/InstanceInfo"
+                "$ref": "#/definitions/Entity"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Machines"
+            "entities"
           ]
         },
-        "LifeResult": {
+        "Entity": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "Life": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Life",
-            "Error"
+            "tag"
           ]
         },
-        "LifeResults": {
+        "EntityMetrics": {
           "type": "object",
           "properties": {
-            "Results": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "metrics": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/LifeResult"
+                "$ref": "#/definitions/MetricResult"
               }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Results"
-          ]
+          "additionalProperties": false
         },
-        "Macaroon": {
+        "Error": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
+            "code": {
+              "type": "string"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "message": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "message",
+            "code"
           ]
         },
-        "MachineContainers": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "ContainerTypes": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "MachineTag": {
+            "macaroon-path": {
               "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "MachineTag",
-            "ContainerTypes"
-          ]
+          "additionalProperties": false
         },
-        "MachineContainersParams": {
+        "ErrorResult": {
           "type": "object",
           "properties": {
-            "Params": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            }
+          },
+          "additionalProperties": false
+        },
+        "ErrorResults": {
+          "type": "object",
+          "properties": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/MachineContainers"
+                "$ref": "#/definitions/ErrorResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Params"
+            "results"
           ]
         },
-        "MachineNetworkConfigResult": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "MeterStatusParam": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "code": {
+              "type": "string"
             },
-            "Info": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/NetworkConfig"
-              }
+            "info": {
+              "type": "string"
+            },
+            "tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Info"
+            "tag",
+            "code",
+            "info"
           ]
         },
-        "MachineNetworkConfigResults": {
+        "MeterStatusParams": {
           "type": "object",
           "properties": {
-            "Results": {
+            "statues": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/MachineNetworkConfigResult"
+                "$ref": "#/definitions/MeterStatusParam"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "statues"
           ]
         },
-        "ModelConfigResult": {
+        "MetricResult": {
           "type": "object",
           "properties": {
-            "Config": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
-              }
+            "key": {
+              "type": "string"
+            },
+            "time": {
+              "type": "string",
+              "format": "date-time"
+            },
+            "unit": {
+              "type": "string"
+            },
+            "value": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Config"
+            "time",
+            "key",
+            "value",
+            "unit"
           ]
         },
-        "NetworkConfig": {
+        "MetricResults": {
           "type": "object",
           "properties": {
-            "Address": {
-              "type": "string"
-            },
-            "CIDR": {
-              "type": "string"
-            },
-            "ConfigType": {
-              "type": "string"
-            },
-            "DNSSearchDomains": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "string"
+                "$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"
             },
-            "DNSServers": {
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
+            }
+          }
+        }
+      },
+      "definitions": {
+        "Entities": {
+          "type": "object",
+          "properties": {
+            "entities": {
               "type": "array",
               "items": {
-                "type": "string"
+                "$ref": "#/definitions/Entity"
               }
-            },
-            "DeviceIndex": {
-              "type": "integer"
-            },
-            "Disabled": {
-              "type": "boolean"
-            },
-            "GatewayAddress": {
-              "type": "string"
-            },
-            "InterfaceName": {
-              "type": "string"
-            },
-            "InterfaceType": {
-              "type": "string"
-            },
-            "MACAddress": {
-              "type": "string"
-            },
-            "MTU": {
-              "type": "integer"
-            },
-            "NoAutoStart": {
-              "type": "boolean"
-            },
-            "ParentInterfaceName": {
-              "type": "string"
-            },
-            "ProviderAddressId": {
-              "type": "string"
-            },
-            "ProviderId": {
-              "type": "string"
-            },
-            "ProviderSpaceId": {
-              "type": "string"
-            },
-            "ProviderSubnetId": {
-              "type": "string"
-            },
-            "ProviderVLANId": {
-              "type": "string"
-            },
-            "VLANTag": {
-              "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "DeviceIndex",
-            "MACAddress",
-            "CIDR",
-            "MTU",
-            "ProviderId",
-            "ProviderSubnetId",
-            "ProviderSpaceId",
-            "ProviderAddressId",
-            "ProviderVLANId",
-            "VLANTag",
-            "InterfaceName",
-            "ParentInterfaceName",
-            "InterfaceType",
-            "Disabled"
+            "entities"
           ]
         },
-        "NotifyWatchResult": {
+        "Entity": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "NotifyWatcherId": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "NotifyWatcherId",
-            "Error"
+            "tag"
           ]
         },
-        "Number": {
+        "Error": {
           "type": "object",
           "properties": {
-            "Build": {
-              "type": "integer"
-            },
-            "Major": {
-              "type": "integer"
-            },
-            "Minor": {
-              "type": "integer"
+            "code": {
+              "type": "string"
             },
-            "Patch": {
-              "type": "integer"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "Tag": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Major",
-            "Minor",
-            "Tag",
-            "Patch",
-            "Build"
+            "message",
+            "code"
           ]
         },
-        "ProvisioningInfo": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Constraints": {
-              "$ref": "#/definitions/Value"
-            },
-            "EndpointBindings": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "string"
-                }
-              }
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "ImageMetadata": {
+            "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/CloudImageMetadata"
-              }
-            },
-            "Jobs": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "Placement": {
-              "type": "string"
-            },
-            "Series": {
-              "type": "string"
-            },
-            "SubnetsToZones": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "array",
-                  "items": {
-                    "type": "string"
-                  }
-                }
-              }
-            },
-            "Tags": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "string"
-                }
-              }
-            },
-            "Volumes": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/VolumeParams"
+                "$ref": "#/definitions/ErrorResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Constraints",
-            "Series",
-            "Placement",
-            "Jobs",
-            "Volumes",
-            "Tags",
-            "SubnetsToZones",
-            "ImageMetadata",
-            "EndpointBindings"
+            "results"
           ]
         },
-        "ProvisioningInfoResult": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        }
+      }
+    }
+  },
+  {
+    "Name": "MigrationFlag",
+    "Version": 1,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "Phase": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "Params": {
+              "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/ProvisioningInfo"
+              "$ref": "#/definitions/PhaseResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Error",
-            "Result"
-          ]
+          }
         },
-        "ProvisioningInfoResults": {
+        "Watch": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/NotifyWatchResults"
+            }
+          }
+        }
+      },
+      "definitions": {
+        "Entities": {
           "type": "object",
           "properties": {
-            "Results": {
+            "entities": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ProvisioningInfoResult"
+                "$ref": "#/definitions/Entity"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "entities"
           ]
         },
-        "SetStatus": {
+        "Entity": {
           "type": "object",
           "properties": {
-            "Entities": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/EntityStatusArgs"
-              }
+            "tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "tag"
           ]
         },
-        "Settings": {
+        "Error": {
           "type": "object",
           "properties": {
-            "Ftp": {
-              "type": "string"
-            },
-            "Http": {
+            "code": {
               "type": "string"
             },
-            "Https": {
-              "type": "string"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "NoProxy": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Http",
-            "Https",
-            "Ftp",
-            "NoProxy"
+            "message",
+            "code"
           ]
         },
-        "StatusResult": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Data": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
-              }
-            },
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "Id": {
-              "type": "string"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "Info": {
+            "macaroon-path": {
               "type": "string"
-            },
-            "Life": {
+            }
+          },
+          "additionalProperties": false
+        },
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "NotifyWatchResult": {
+          "type": "object",
+          "properties": {
+            "NotifyWatcherId": {
               "type": "string"
             },
-            "Since": {
-              "type": "string",
-              "format": "date-time"
-            },
-            "Status": {
-              "type": "string"
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Id",
-            "Life",
-            "Status",
-            "Info",
-            "Data",
-            "Since"
+            "NotifyWatcherId"
           ]
         },
-        "StatusResults": {
+        "NotifyWatchResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/StatusResult"
+                "$ref": "#/definitions/NotifyWatchResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
-        "StringResult": {
+        "PhaseResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Result": {
+            "phase": {
               "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error",
-            "Result"
-          ]
+          "additionalProperties": false
         },
-        "StringResults": {
+        "PhaseResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/StringResult"
+                "$ref": "#/definitions/PhaseResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "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"
           ]
         },
-        "StringsResult": {
+        "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": "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": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
             "Result": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+              "$ref": "#/definitions/NotifyWatchResult"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Error",
-            "Result"
-          ]
+          }
         },
-        "StringsWatchResult": {
+        "WatchMachineErrorRetry": {
           "type": "object",
           "properties": {
-            "Changes": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "StringsWatcherId": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/NotifyWatchResult"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "StringsWatcherId",
-            "Changes",
-            "Error"
-          ]
+          }
         },
-        "StringsWatchResults": {
+        "WatchModelMachines": {
+          "type": "object",
+          "properties": {
+            "Result": {
+              "$ref": "#/definitions/StringsWatchResult"
+            }
+          }
+        }
+      },
+      "definitions": {
+        "APIHostPortsResult": {
           "type": "object",
           "properties": {
-            "Results": {
+            "servers": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/StringsWatchResult"
+                "type": "array",
+                "items": {
+                  "$ref": "#/definitions/HostPort"
+                }
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "servers"
           ]
         },
-        "Tools": {
+        "Address": {
           "type": "object",
           "properties": {
-            "sha256": {
+            "scope": {
               "type": "string"
             },
-            "size": {
-              "type": "integer"
+            "space-name": {
+              "type": "string"
             },
-            "url": {
+            "type": {
               "type": "string"
             },
-            "version": {
-              "$ref": "#/definitions/Binary"
+            "value": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "version",
-            "url",
-            "size"
+            "value",
+            "type",
+            "scope"
           ]
         },
-        "ToolsResult": {
+        "Binary": {
           "type": "object",
           "properties": {
-            "DisableSSLHostnameVerification": {
-              "type": "boolean"
+            "Arch": {
+              "type": "string"
             },
-            "Error": {
-              "$ref": "#/definitions/Error"
+            "Number": {
+              "$ref": "#/definitions/Number"
             },
-            "ToolsList": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/Tools"
-              }
+            "Series": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "ToolsList",
-            "DisableSSLHostnameVerification",
-            "Error"
+            "Number",
+            "Series",
+            "Arch"
           ]
         },
-        "ToolsResults": {
+        "BytesResult": {
           "type": "object",
           "properties": {
-            "Results": {
+            "result": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ToolsResult"
+                "type": "integer"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
-          ]
-        },
-        "UpdateBehavior": {
-          "type": "object",
-          "properties": {
-            "EnableOSRefreshUpdate": {
-              "type": "boolean"
-            },
-            "EnableOSUpgrade": {
-              "type": "boolean"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "EnableOSRefreshUpdate",
-            "EnableOSUpgrade"
+            "result"
           ]
         },
-        "Value": {
+        "CloudImageMetadata": {
           "type": "object",
           "properties": {
             "arch": {
               "type": "string"
             },
-            "container": {
+            "image-id": {
               "type": "string"
             },
-            "cpu-cores": {
+            "priority": {
               "type": "integer"
             },
-            "cpu-power": {
+            "region": {
+              "type": "string"
+            },
+            "root-storage-size": {
               "type": "integer"
             },
-            "instance-type": {
+            "root-storage-type": {
               "type": "string"
             },
-            "mem": {
-              "type": "integer"
+            "series": {
+              "type": "string"
             },
-            "root-disk": {
-              "type": "integer"
+            "source": {
+              "type": "string"
             },
-            "spaces": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "stream": {
+              "type": "string"
             },
-            "tags": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "version": {
+              "type": "string"
             },
             "virt-type": {
               "type": "string"
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "image-id",
+            "region",
+            "version",
+            "series",
+            "arch",
+            "source",
+            "priority"
+          ]
         },
-        "Volume": {
+        "ConstraintsResult": {
           "type": "object",
           "properties": {
-            "info": {
-              "$ref": "#/definitions/VolumeInfo"
+            "constraints": {
+              "$ref": "#/definitions/Value"
             },
-            "volumetag": {
-              "type": "string"
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "volumetag",
-            "info"
+            "constraints"
           ]
         },
-        "VolumeAttachmentInfo": {
+        "ConstraintsResults": {
           "type": "object",
           "properties": {
-            "busaddress": {
-              "type": "string"
-            },
-            "devicelink": {
-              "type": "string"
-            },
-            "devicename": {
-              "type": "string"
-            },
-            "read-only": {
-              "type": "boolean"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ConstraintsResult"
+              }
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
         },
-        "VolumeAttachmentParams": {
+        "ContainerConfig": {
           "type": "object",
           "properties": {
-            "instanceid": {
-              "type": "string"
-            },
-            "machinetag": {
-              "type": "string"
+            "UpdateBehavior": {
+              "$ref": "#/definitions/UpdateBehavior"
             },
-            "provider": {
+            "apt-mirror": {
               "type": "string"
             },
-            "read-only": {
-              "type": "boolean"
+            "apt-proxy": {
+              "$ref": "#/definitions/Settings"
             },
-            "volumeid": {
+            "authorized-keys": {
               "type": "string"
             },
-            "volumetag": {
+            "provider-type": {
               "type": "string"
+            },
+            "proxy": {
+              "$ref": "#/definitions/Settings"
+            },
+            "ssl-hostname-verification": {
+              "type": "boolean"
             }
           },
           "additionalProperties": false,
           "required": [
-            "volumetag",
-            "machinetag",
-            "provider"
+            "provider-type",
+            "authorized-keys",
+            "ssl-hostname-verification",
+            "proxy",
+            "apt-proxy",
+            "apt-mirror",
+            "UpdateBehavior"
           ]
         },
-        "VolumeInfo": {
+        "ContainerManagerConfig": {
           "type": "object",
           "properties": {
-            "hardwareid": {
-              "type": "string"
-            },
-            "persistent": {
-              "type": "boolean"
-            },
-            "size": {
-              "type": "integer"
-            },
-            "volumeid": {
+            "config": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "string"
+                }
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "config"
+          ]
+        },
+        "ContainerManagerConfigParams": {
+          "type": "object",
+          "properties": {
+            "type": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "volumeid",
-            "size",
-            "persistent"
+            "type"
           ]
         },
-        "VolumeParams": {
+        "ControllerConfigResult": {
           "type": "object",
           "properties": {
-            "attachment": {
-              "$ref": "#/definitions/VolumeAttachmentParams"
-            },
-            "attributes": {
+            "config": {
               "type": "object",
               "patternProperties": {
                 ".*": {
                   "additionalProperties": true
                 }
               }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "config"
+          ]
+        },
+        "DistributionGroupResult": {
+          "type": "object",
+          "properties": {
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "provider": {
-              "type": "string"
-            },
-            "size": {
-              "type": "integer"
-            },
-            "tags": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "string"
-                }
+            "result": {
+              "type": "array",
+              "items": {
+                "type": "string"
               }
-            },
-            "volumetag": {
-              "type": "string"
             }
           },
           "additionalProperties": false,
-          "required": [
-            "volumetag",
-            "size",
-            "provider"
+          "required": [
+            "result"
           ]
         },
-        "WatchContainer": {
+        "DistributionGroupResults": {
           "type": "object",
           "properties": {
-            "ContainerType": {
-              "type": "string"
-            },
-            "MachineTag": {
-              "type": "string"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/DistributionGroupResult"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "MachineTag",
-            "ContainerType"
+            "results"
           ]
         },
-        "WatchContainers": {
+        "Entities": {
           "type": "object",
           "properties": {
-            "Params": {
+            "entities": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/WatchContainer"
+                "$ref": "#/definitions/Entity"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Params"
+            "entities"
           ]
         },
-        "caveat": {
+        "Entity": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "tag"
           ]
         },
-        "packet": {
+        "EntityPassword": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
+            "password": {
+              "type": "string"
             },
-            "totalLen": {
-              "type": "integer"
+            "tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "tag",
+            "password"
           ]
-        }
-      }
-    }
-  },
-  {
-    "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": {
+        "EntityPasswords": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "changes": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Entity"
+                "$ref": "#/definitions/EntityPassword"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "changes"
           ]
         },
-        "Entity": {
+        "EntityStatusArgs": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "data": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
+            },
+            "info": {
+              "type": "string"
+            },
+            "status": {
+              "type": "string"
+            },
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "tag",
+            "status",
+            "info",
+            "data"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
           "additionalProperties": false
         },
-        "Macaroon": {
-          "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
-        },
-        "NotifyWatchResult": {
+        "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
-            },
-            "NotifyWatcherId": {
-              "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "NotifyWatcherId",
-            "Error"
-          ]
+          "additionalProperties": false
         },
-        "NotifyWatchResults": {
+        "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/NotifyWatchResult"
+                "$ref": "#/definitions/ErrorResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
-        "ProxyConfig": {
+        "FindToolsParams": {
           "type": "object",
           "properties": {
-            "FTP": {
+            "arch": {
               "type": "string"
             },
-            "HTTP": {
-              "type": "string"
+            "major": {
+              "type": "integer"
             },
-            "HTTPS": {
-              "type": "string"
+            "minor": {
+              "type": "integer"
             },
-            "NoProxy": {
+            "number": {
+              "$ref": "#/definitions/Number"
+            },
+            "series": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "HTTP",
-            "HTTPS",
-            "FTP",
-            "NoProxy"
+            "number",
+            "major",
+            "minor",
+            "arch",
+            "series"
           ]
         },
-        "ProxyConfigResult": {
+        "FindToolsResult": {
           "type": "object",
           "properties": {
-            "APTProxySettings": {
-              "$ref": "#/definitions/ProxyConfig"
-            },
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "ProxySettings": {
-              "$ref": "#/definitions/ProxyConfig"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "ProxySettings",
-            "APTProxySettings"
-          ]
-        },
-        "ProxyConfigResults": {
-          "type": "object",
-          "properties": {
-            "Results": {
+            "list": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ProxyConfigResult"
+                "$ref": "#/definitions/Tools"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "list"
           ]
         },
-        "caveat": {
+        "HardwareCharacteristics": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
+            "arch": {
+              "type": "string"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "availability-zone": {
+              "type": "string"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
+            "cpu-cores": {
               "type": "integer"
             },
-            "start": {
+            "cpu-power": {
               "type": "integer"
             },
-            "totalLen": {
+            "mem": {
               "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
-        }
-      }
-    }
-  },
-  {
-    "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"
+            "root-disk": {
+              "type": "integer"
             },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
-            }
-          }
-        },
-        "WatchForRebootEvent": {
-          "type": "object",
-          "properties": {
-            "Result": {
-              "$ref": "#/definitions/NotifyWatchResult"
-            }
-          }
-        }
-      },
-      "definitions": {
-        "Entities": {
-          "type": "object",
-          "properties": {
-            "Entities": {
+            "tags": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Entity"
+                "type": "string"
               }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Entities"
-          ]
+          "additionalProperties": false
         },
-        "Entity": {
+        "HostPort": {
           "type": "object",
           "properties": {
-            "Tag": {
-              "type": "string"
+            "Address": {
+              "$ref": "#/definitions/Address"
+            },
+            "port": {
+              "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "Address",
+            "port"
           ]
         },
-        "Error": {
+        "InstanceInfo": {
           "type": "object",
           "properties": {
-            "Code": {
+            "characteristics": {
+              "$ref": "#/definitions/HardwareCharacteristics"
+            },
+            "instance-id": {
               "type": "string"
             },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "network-config": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/NetworkConfig"
+              }
+            },
+            "nonce": {
+              "type": "string"
             },
-            "Message": {
+            "tag": {
               "type": "string"
+            },
+            "volume-attachments": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/VolumeAttachmentInfo"
+                }
+              }
+            },
+            "volumes": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Volume"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "tag",
+            "instance-id",
+            "nonce",
+            "characteristics",
+            "volumes",
+            "volume-attachments",
+            "network-config"
           ]
         },
-        "ErrorInfo": {
+        "InstancesInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
-            },
-            "MacaroonPath": {
-              "type": "string"
+            "machines": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/InstanceInfo"
+              }
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "machines"
+          ]
         },
-        "ErrorResult": {
+        "LifeResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
+            },
+            "life": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error"
+            "life"
           ]
         },
-        "ErrorResults": {
+        "LifeResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ErrorResult"
+                "$ref": "#/definitions/LifeResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "MachineContainers": {
           "type": "object",
           "properties": {
-            "caveats": {
+            "container-types": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
+                "type": "string"
               }
             },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "machine-tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "machine-tag",
+            "container-types"
           ]
         },
-        "NotifyWatchResult": {
+        "MachineContainersParams": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "NotifyWatcherId": {
-              "type": "string"
+            "params": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/MachineContainers"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "NotifyWatcherId",
-            "Error"
+            "params"
           ]
         },
-        "RebootActionResult": {
+        "MachineNetworkConfigResult": {
           "type": "object",
           "properties": {
             "error": {
               "$ref": "#/definitions/Error"
             },
-            "result": {
-              "type": "string"
+            "info": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/NetworkConfig"
+              }
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "info"
+          ]
         },
-        "RebootActionResults": {
+        "MachineNetworkConfigResults": {
           "type": "object",
           "properties": {
             "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/RebootActionResult"
+                "$ref": "#/definitions/MachineNetworkConfigResult"
               }
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
         },
-        "caveat": {
+        "ModelConfigResult": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "config": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "config"
           ]
         },
-        "packet": {
+        "NetworkConfig": {
           "type": "object",
           "properties": {
-            "headerLen": {
+            "address": {
+              "type": "string"
+            },
+            "cidr": {
+              "type": "string"
+            },
+            "config-type": {
+              "type": "string"
+            },
+            "device-index": {
               "type": "integer"
             },
-            "start": {
+            "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"
             },
-            "totalLen": {
+            "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": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "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"
           ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "RelationUnitsWatcher",
-    "Version": 1,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "Next": {
-          "type": "object",
-          "properties": {
-            "Result": {
-              "$ref": "#/definitions/RelationUnitsWatchResult"
-            }
-          }
         },
-        "Stop": {
-          "type": "object"
-        }
-      },
-      "definitions": {
-        "Error": {
+        "NotifyWatchResult": {
           "type": "object",
           "properties": {
-            "Code": {
+            "NotifyWatcherId": {
               "type": "string"
             },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
-            },
-            "Message": {
-              "type": "string"
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "NotifyWatcherId"
           ]
         },
-        "ErrorInfo": {
+        "Number": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
+            "Build": {
+              "type": "integer"
+            },
+            "Major": {
+              "type": "integer"
+            },
+            "Minor": {
+              "type": "integer"
+            },
+            "Patch": {
+              "type": "integer"
             },
-            "MacaroonPath": {
+            "Tag": {
               "type": "string"
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "Major",
+            "Minor",
+            "Tag",
+            "Patch",
+            "Build"
+          ]
         },
-        "Macaroon": {
+        "ProvisioningInfo": {
           "type": "object",
           "properties": {
-            "caveats": {
+            "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/caveat"
+                "$ref": "#/definitions/CloudImageMetadata"
               }
             },
-            "data": {
+            "jobs": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "type": "string"
               }
             },
-            "id": {
-              "$ref": "#/definitions/packet"
+            "placement": {
+              "type": "string"
             },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "series": {
+              "type": "string"
             },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
+            "subnets-to-zones": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "array",
+                  "items": {
+                    "type": "string"
+                  }
+                }
               }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
-        },
-        "RelationUnitsChange": {
-          "type": "object",
-          "properties": {
-            "Changed": {
+            },
+            "tags": {
               "type": "object",
               "patternProperties": {
                 ".*": {
-                  "$ref": "#/definitions/UnitSettings"
+                  "type": "string"
                 }
               }
             },
-            "Departed": {
+            "volumes": {
               "type": "array",
               "items": {
-                "type": "string"
+                "$ref": "#/definitions/VolumeParams"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Changed",
-            "Departed"
+            "constraints",
+            "series",
+            "placement",
+            "jobs"
           ]
         },
-        "RelationUnitsWatchResult": {
+        "ProvisioningInfoResult": {
           "type": "object",
           "properties": {
-            "Changes": {
-              "$ref": "#/definitions/RelationUnitsChange"
-            },
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "RelationUnitsWatcherId": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "RelationUnitsWatcherId",
-            "Changes",
-            "Error"
-          ]
-        },
-        "UnitSettings": {
-          "type": "object",
-          "properties": {
-            "Version": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Version"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "result": {
+              "$ref": "#/definitions/ProvisioningInfo"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "result"
           ]
         },
-        "packet": {
+        "ProvisioningInfoResults": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ProvisioningInfoResult"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "results"
           ]
-        }
-      }
-    }
-  },
-  {
-    "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": {
+        "SetStatus": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Entity"
+                "$ref": "#/definitions/EntityStatusArgs"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
-        "Entity": {
+        "Settings": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "Ftp": {
+              "type": "string"
+            },
+            "Http": {
+              "type": "string"
+            },
+            "Https": {
+              "type": "string"
+            },
+            "NoProxy": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "Http",
+            "Https",
+            "Ftp",
+            "NoProxy"
           ]
         },
-        "Error": {
+        "StatusResult": {
           "type": "object",
           "properties": {
-            "Code": {
+            "data": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "id": {
               "type": "string"
             },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "info": {
+              "type": "string"
+            },
+            "life": {
+              "type": "string"
+            },
+            "since": {
+              "type": "string",
+              "format": "date-time"
             },
-            "Message": {
+            "status": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "id",
+            "life",
+            "status",
+            "info",
+            "data",
+            "since"
           ]
         },
-        "ErrorInfo": {
-          "type": "object",
-          "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
-            },
-            "MacaroonPath": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false
-        },
-        "Macaroon": {
+        "StatusResults": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/StatusResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "results"
           ]
         },
-        "NotifyWatchResult": {
+        "StringResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "NotifyWatcherId": {
+            "result": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "NotifyWatcherId",
-            "Error"
+            "result"
           ]
         },
-        "NotifyWatchResults": {
+        "StringResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/NotifyWatchResult"
+                "$ref": "#/definitions/StringResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
-          ]
-        },
-        "RetryStrategy": {
-          "type": "object",
-          "properties": {
-            "JitterRetryTime": {
-              "type": "boolean"
-            },
-            "MaxRetryTime": {
-              "type": "integer"
-            },
-            "MinRetryTime": {
-              "type": "integer"
-            },
-            "RetryTimeFactor": {
-              "type": "integer"
-            },
-            "ShouldRetry": {
-              "type": "boolean"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "ShouldRetry",
-            "MinRetryTime",
-            "MaxRetryTime",
-            "JitterRetryTime",
-            "RetryTimeFactor"
+            "results"
           ]
         },
-        "RetryStrategyResult": {
+        "StringsResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Result": {
-              "$ref": "#/definitions/RetryStrategy"
+            "result": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error",
-            "Result"
-          ]
+          "additionalProperties": false
         },
-        "RetryStrategyResults": {
+        "StringsWatchResult": {
           "type": "object",
           "properties": {
-            "Results": {
+            "changes": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/RetryStrategyResult"
+                "type": "string"
               }
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "watcher-id": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "watcher-id"
           ]
         },
-        "caveat": {
+        "StringsWatchResults": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/StringsWatchResult"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "results"
           ]
         },
-        "packet": {
+        "Tools": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
+            "sha256": {
+              "type": "string"
             },
-            "start": {
+            "size": {
               "type": "integer"
             },
-            "totalLen": {
-              "type": "integer"
+            "url": {
+              "type": "string"
+            },
+            "version": {
+              "$ref": "#/definitions/Binary"
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "version",
+            "url",
+            "size"
           ]
-        }
-      }
-    }
-  },
-  {
-    "Name": "SSHClient",
-    "Version": 1,
-    "Schema": {
-      "type": "object",
-      "properties": {
-        "PrivateAddress": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/SSHAddressResults"
-            }
-          }
-        },
-        "Proxy": {
-          "type": "object",
-          "properties": {
-            "Result": {
-              "$ref": "#/definitions/SSHProxyResult"
-            }
-          }
         },
-        "PublicAddress": {
+        "ToolsResult": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
+            "disable-ssl-hostname-verification": {
+              "type": "boolean"
             },
-            "Result": {
-              "$ref": "#/definitions/SSHAddressResults"
-            }
-          }
-        },
-        "PublicKeys": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "Result": {
-              "$ref": "#/definitions/SSHPublicKeysResults"
-            }
-          }
-        }
-      },
-      "definitions": {
-        "Entities": {
-          "type": "object",
-          "properties": {
-            "Entities": {
+            "tools": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Entity"
+                "$ref": "#/definitions/Tools"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "tools",
+            "disable-ssl-hostname-verification"
           ]
         },
-        "Entity": {
+        "ToolsResults": {
           "type": "object",
           "properties": {
-            "Tag": {
-              "type": "string"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ToolsResult"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "results"
           ]
         },
-        "Error": {
+        "UpdateBehavior": {
           "type": "object",
           "properties": {
-            "Code": {
-              "type": "string"
-            },
-            "Info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "enable-os-refresh-update": {
+              "type": "boolean"
             },
-            "Message": {
-              "type": "string"
+            "enable-os-upgrade": {
+              "type": "boolean"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "enable-os-refresh-update",
+            "enable-os-upgrade"
           ]
         },
-        "ErrorInfo": {
+        "Value": {
           "type": "object",
           "properties": {
-            "Macaroon": {
-              "$ref": "#/definitions/Macaroon"
+            "arch": {
+              "type": "string"
             },
-            "MacaroonPath": {
+            "container": {
               "type": "string"
-            }
-          },
-          "additionalProperties": false
-        },
-        "Macaroon": {
-          "type": "object",
-          "properties": {
-            "caveats": {
+            },
+            "cores": {
+              "type": "integer"
+            },
+            "cpu-power": {
+              "type": "integer"
+            },
+            "instance-type": {
+              "type": "string"
+            },
+            "mem": {
+              "type": "integer"
+            },
+            "root-disk": {
+              "type": "integer"
+            },
+            "spaces": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/caveat"
+                "type": "string"
               }
             },
-            "data": {
+            "tags": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "type": "string"
               }
             },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "virt-type": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false
+        },
+        "Volume": {
+          "type": "object",
+          "properties": {
+            "info": {
+              "$ref": "#/definitions/VolumeInfo"
             },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "volume-tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "volume-tag",
+            "info"
           ]
         },
-        "SSHAddressResult": {
+        "VolumeAttachmentInfo": {
           "type": "object",
           "properties": {
-            "address": {
+            "bus-address": {
               "type": "string"
             },
-            "error": {
-              "$ref": "#/definitions/Error"
+            "device-link": {
+              "type": "string"
+            },
+            "device-name": {
+              "type": "string"
+            },
+            "read-only": {
+              "type": "boolean"
             }
           },
           "additionalProperties": false
         },
-        "SSHAddressResults": {
+        "VolumeAttachmentParams": {
           "type": "object",
           "properties": {
-            "results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/SSHAddressResult"
-              }
+            "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": [
-            "results"
+            "volume-tag",
+            "machine-tag",
+            "provider"
           ]
         },
-        "SSHProxyResult": {
+        "VolumeInfo": {
           "type": "object",
           "properties": {
-            "use-proxy": {
+            "hardware-id": {
+              "type": "string"
+            },
+            "persistent": {
               "type": "boolean"
+            },
+            "size": {
+              "type": "integer"
+            },
+            "volume-id": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "use-proxy"
+            "volume-id",
+            "size",
+            "persistent"
           ]
         },
-        "SSHPublicKeysResult": {
+        "VolumeParams": {
           "type": "object",
           "properties": {
-            "error": {
-              "$ref": "#/definitions/Error"
+            "attachment": {
+              "$ref": "#/definitions/VolumeAttachmentParams"
             },
-            "public-keys": {
-              "type": "array",
-              "items": {
-                "type": "string"
+            "attributes": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
               }
-            }
-          },
-          "additionalProperties": false
-        },
-        "SSHPublicKeysResults": {
-          "type": "object",
-          "properties": {
-            "results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/SSHPublicKeysResult"
+            },
+            "provider": {
+              "type": "string"
+            },
+            "size": {
+              "type": "integer"
+            },
+            "tags": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "string"
+                }
               }
+            },
+            "volume-tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "results"
+            "volume-tag",
+            "size",
+            "provider"
           ]
         },
-        "caveat": {
+        "WatchContainer": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "container-type": {
+              "type": "string"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "machine-tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "machine-tag",
+            "container-type"
           ]
         },
-        "packet": {
+        "WatchContainers": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
+            "params": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/WatchContainer"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "params"
           ]
         }
       }
     }
   },
   {
-    "Name": "Service",
-    "Version": 3,
+    "Name": "ProxyUpdater",
+    "Version": 1,
     "Schema": {
       "type": "object",
       "properties": {
-        "AddRelation": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/AddRelation"
-            },
-            "Result": {
-              "$ref": "#/definitions/AddRelationResults"
-            }
-          }
-        },
-        "AddUnits": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/AddServiceUnits"
-            },
-            "Result": {
-              "$ref": "#/definitions/AddServiceUnitsResults"
-            }
-          }
-        },
-        "CharmRelations": {
+        "ProxyConfig": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/ServiceCharmRelations"
+              "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/ServiceCharmRelationsResults"
+              "$ref": "#/definitions/ProxyConfigResults"
             }
           }
         },
-        "Deploy": {
+        "WatchForProxyConfigAndAPIHostPortChanges": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/ServicesDeploy"
+              "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/ErrorResults"
-            }
-          }
-        },
-        "Destroy": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/ServiceDestroy"
-            }
-          }
-        },
-        "DestroyRelation": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/DestroyRelation"
+              "$ref": "#/definitions/NotifyWatchResults"
             }
           }
-        },
-        "DestroyUnits": {
+        }
+      },
+      "definitions": {
+        "Entities": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/DestroyServiceUnits"
+            "entities": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Entity"
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "entities"
+          ]
         },
-        "Expose": {
+        "Entity": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/ServiceExpose"
+            "tag": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "tag"
+          ]
         },
-        "Get": {
+        "Error": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/ServiceGet"
+            "code": {
+              "type": "string"
             },
-            "Result": {
-              "$ref": "#/definitions/ServiceGetResults"
-            }
-          }
-        },
-        "GetCharmURL": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/ServiceGet"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "Result": {
-              "$ref": "#/definitions/StringResult"
+            "message": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "message",
+            "code"
+          ]
         },
-        "GetConstraints": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/GetServiceConstraints"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "Result": {
-              "$ref": "#/definitions/GetConstraintsResults"
-            }
-          }
-        },
-        "Set": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/ServiceSet"
-            }
-          }
-        },
-        "SetCharm": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/ServiceSetCharm"
+            "macaroon-path": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false
         },
-        "SetConstraints": {
+        "Macaroon": {
           "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/SetConstraints"
-            }
-          }
+          "additionalProperties": false
         },
-        "SetMetricCredentials": {
+        "NotifyWatchResult": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/ServiceMetricCredentials"
+            "NotifyWatcherId": {
+              "type": "string"
             },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
-            }
-          }
-        },
-        "Unexpose": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/ServiceUnexpose"
-            }
-          }
-        },
-        "Unset": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/ServiceUnset"
+            "error": {
+              "$ref": "#/definitions/Error"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "NotifyWatcherId"
+          ]
         },
-        "Update": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/ServiceUpdate"
-            }
-          }
-        }
-      },
-      "definitions": {
-        "AddRelation": {
+        "NotifyWatchResults": {
           "type": "object",
           "properties": {
-            "Endpoints": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "string"
+                "$ref": "#/definitions/NotifyWatchResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Endpoints"
+            "results"
           ]
         },
-        "AddRelationResults": {
+        "ProxyConfig": {
           "type": "object",
           "properties": {
-            "Endpoints": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "$ref": "#/definitions/Relation"
-                }
-              }
+            "ftp": {
+              "type": "string"
+            },
+            "http": {
+              "type": "string"
+            },
+            "https": {
+              "type": "string"
+            },
+            "no-proxy": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Endpoints"
+            "http",
+            "https",
+            "ftp",
+            "no-proxy"
           ]
         },
-        "AddServiceUnits": {
+        "ProxyConfigResult": {
           "type": "object",
           "properties": {
-            "NumUnits": {
-              "type": "integer"
+            "apt-proxy-settings": {
+              "$ref": "#/definitions/ProxyConfig"
             },
-            "Placement": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/Placement"
-              }
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "ServiceName": {
-              "type": "string"
+            "proxy-settings": {
+              "$ref": "#/definitions/ProxyConfig"
             }
           },
           "additionalProperties": false,
           "required": [
-            "ServiceName",
-            "NumUnits",
-            "Placement"
+            "proxy-settings",
+            "apt-proxy-settings"
           ]
         },
-        "AddServiceUnitsResults": {
+        "ProxyConfigResults": {
           "type": "object",
           "properties": {
-            "Units": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "string"
+                "$ref": "#/definitions/ProxyConfigResult"
               }
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Units"
-          ]
+          },
+          "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"
+            }
+          }
         },
-        "Constraints": {
+        "RequestReboot": {
           "type": "object",
           "properties": {
-            "Count": {
-              "type": "integer"
-            },
-            "Pool": {
-              "type": "string"
+            "Params": {
+              "$ref": "#/definitions/Entities"
             },
-            "Size": {
-              "type": "integer"
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Pool",
-            "Size",
-            "Count"
-          ]
+          }
         },
-        "DestroyRelation": {
+        "WatchForRebootEvent": {
+          "type": "object",
+          "properties": {
+            "Result": {
+              "$ref": "#/definitions/NotifyWatchResult"
+            }
+          }
+        }
+      },
+      "definitions": {
+        "Entities": {
           "type": "object",
           "properties": {
-            "Endpoints": {
+            "entities": {
               "type": "array",
               "items": {
-                "type": "string"
+                "$ref": "#/definitions/Entity"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Endpoints"
+            "entities"
           ]
         },
-        "DestroyServiceUnits": {
+        "Entity": {
           "type": "object",
           "properties": {
-            "UnitNames": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "UnitNames"
+            "tag"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
         "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ErrorResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
-        "GetConstraintsResults": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "NotifyWatchResult": {
           "type": "object",
           "properties": {
-            "Constraints": {
-              "$ref": "#/definitions/Value"
+            "NotifyWatcherId": {
+              "type": "string"
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Constraints"
+            "NotifyWatcherId"
           ]
         },
-        "GetServiceConstraints": {
+        "RebootActionResult": {
           "type": "object",
           "properties": {
-            "ServiceName": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "result": {
               "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "ServiceName"
-          ]
+          "additionalProperties": false
         },
-        "Macaroon": {
+        "RebootActionResults": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "$ref": "#/definitions/RebootActionResult"
               }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
-        },
-        "Placement": {
+          "additionalProperties": false
+        }
+      }
+    }
+  },
+  {
+    "Name": "RelationUnitsWatcher",
+    "Version": 1,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "Next": {
           "type": "object",
           "properties": {
-            "Directive": {
-              "type": "string"
-            },
-            "Scope": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/RelationUnitsWatchResult"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Scope",
-            "Directive"
-          ]
+          }
         },
-        "Relation": {
+        "Stop": {
+          "type": "object"
+        }
+      },
+      "definitions": {
+        "Error": {
           "type": "object",
           "properties": {
-            "Interface": {
-              "type": "string"
-            },
-            "Limit": {
-              "type": "integer"
-            },
-            "Name": {
+            "code": {
               "type": "string"
             },
-            "Optional": {
-              "type": "boolean"
-            },
-            "Role": {
-              "type": "string"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "Scope": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Name",
-            "Role",
-            "Interface",
-            "Optional",
-            "Limit",
-            "Scope"
+            "message",
+            "code"
           ]
         },
-        "ServiceCharmRelations": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "ServiceName": {
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
+            },
+            "macaroon-path": {
               "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "ServiceName"
-          ]
+          "additionalProperties": false
         },
-        "ServiceCharmRelationsResults": {
+        "Macaroon": {
           "type": "object",
-          "properties": {
-            "CharmRelations": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "CharmRelations"
-          ]
+          "additionalProperties": false
         },
-        "ServiceDeploy": {
+        "RelationUnitsChange": {
           "type": "object",
           "properties": {
-            "Channel": {
-              "type": "string"
-            },
-            "CharmUrl": {
-              "type": "string"
-            },
-            "Config": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "string"
-                }
-              }
-            },
-            "ConfigYAML": {
-              "type": "string"
-            },
-            "Constraints": {
-              "$ref": "#/definitions/Value"
-            },
-            "EndpointBindings": {
+            "changed": {
               "type": "object",
               "patternProperties": {
                 ".*": {
-                  "type": "string"
+                  "$ref": "#/definitions/UnitSettings"
                 }
               }
             },
-            "NumUnits": {
-              "type": "integer"
-            },
-            "Placement": {
+            "departed": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Placement"
-              }
-            },
-            "Resources": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "string"
-                }
-              }
-            },
-            "Series": {
-              "type": "string"
-            },
-            "ServiceName": {
-              "type": "string"
-            },
-            "Storage": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "$ref": "#/definitions/Constraints"
-                }
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "ServiceName",
-            "Series",
-            "CharmUrl",
-            "Channel",
-            "NumUnits",
-            "Config",
-            "ConfigYAML",
-            "Constraints",
-            "Placement",
-            "Storage",
-            "EndpointBindings",
-            "Resources"
-          ]
-        },
-        "ServiceDestroy": {
-          "type": "object",
-          "properties": {
-            "ServiceName": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "ServiceName"
-          ]
-        },
-        "ServiceExpose": {
-          "type": "object",
-          "properties": {
-            "ServiceName": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "ServiceName"
-          ]
-        },
-        "ServiceGet": {
-          "type": "object",
-          "properties": {
-            "ServiceName": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "ServiceName"
-          ]
-        },
-        "ServiceGetResults": {
-          "type": "object",
-          "properties": {
-            "Charm": {
-              "type": "string"
-            },
-            "Config": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
+                "type": "string"
               }
-            },
-            "Constraints": {
-              "$ref": "#/definitions/Value"
-            },
-            "Service": {
-              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Service",
-            "Charm",
-            "Config",
-            "Constraints"
+            "changed"
           ]
         },
-        "ServiceMetricCredential": {
+        "RelationUnitsWatchResult": {
           "type": "object",
           "properties": {
-            "MetricCredentials": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "changes": {
+              "$ref": "#/definitions/RelationUnitsChange"
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "ServiceName": {
+            "watcher-id": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "ServiceName",
-            "MetricCredentials"
+            "watcher-id",
+            "changes"
           ]
         },
-        "ServiceMetricCredentials": {
+        "UnitSettings": {
           "type": "object",
           "properties": {
-            "Creds": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ServiceMetricCredential"
-              }
+            "version": {
+              "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Creds"
+            "version"
           ]
-        },
-        "ServiceSet": {
+        }
+      }
+    }
+  },
+  {
+    "Name": "Resumer",
+    "Version": 2,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "ResumeTransactions": {
+          "type": "object"
+        }
+      }
+    }
+  },
+  {
+    "Name": "RetryStrategy",
+    "Version": 1,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "RetryStrategy": {
           "type": "object",
           "properties": {
-            "Options": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "string"
-                }
-              }
+            "Params": {
+              "$ref": "#/definitions/Entities"
             },
-            "ServiceName": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/RetryStrategyResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "ServiceName",
-            "Options"
-          ]
+          }
         },
-        "ServiceSetCharm": {
+        "WatchRetryStrategy": {
           "type": "object",
           "properties": {
-            "charmurl": {
-              "type": "string"
-            },
-            "cs-channel": {
-              "type": "string"
-            },
-            "forceseries": {
-              "type": "boolean"
-            },
-            "forceunits": {
-              "type": "boolean"
-            },
-            "resourceids": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "string"
-                }
-              }
+            "Params": {
+              "$ref": "#/definitions/Entities"
             },
-            "servicename": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/NotifyWatchResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "servicename",
-            "charmurl",
-            "cs-channel",
-            "forceunits",
-            "forceseries",
-            "resourceids"
-          ]
-        },
-        "ServiceUnexpose": {
+          }
+        }
+      },
+      "definitions": {
+        "Entities": {
           "type": "object",
           "properties": {
-            "ServiceName": {
-              "type": "string"
+            "entities": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Entity"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "ServiceName"
+            "entities"
           ]
         },
-        "ServiceUnset": {
+        "Entity": {
           "type": "object",
           "properties": {
-            "Options": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "ServiceName": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "ServiceName",
-            "Options"
+            "tag"
           ]
         },
-        "ServiceUpdate": {
+        "Error": {
           "type": "object",
           "properties": {
-            "CharmUrl": {
-              "type": "string"
-            },
-            "Constraints": {
-              "$ref": "#/definitions/Value"
-            },
-            "ForceCharmUrl": {
-              "type": "boolean"
-            },
-            "ForceSeries": {
-              "type": "boolean"
-            },
-            "MinUnits": {
-              "type": "integer"
-            },
-            "ServiceName": {
+            "code": {
               "type": "string"
             },
-            "SettingsStrings": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "string"
-                }
-              }
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "SettingsYAML": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "ServiceName",
-            "CharmUrl",
-            "ForceCharmUrl",
-            "ForceSeries",
-            "MinUnits",
-            "SettingsStrings",
-            "SettingsYAML",
-            "Constraints"
+            "message",
+            "code"
           ]
         },
-        "ServicesDeploy": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Services": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ServiceDeploy"
-              }
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
+            },
+            "macaroon-path": {
+              "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Services"
-          ]
+          "additionalProperties": false
         },
-        "SetConstraints": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "NotifyWatchResult": {
           "type": "object",
           "properties": {
-            "Constraints": {
-              "$ref": "#/definitions/Value"
-            },
-            "ServiceName": {
+            "NotifyWatcherId": {
               "type": "string"
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "ServiceName",
-            "Constraints"
+            "NotifyWatcherId"
           ]
         },
-        "StringResult": {
+        "NotifyWatchResults": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "Result": {
-              "type": "string"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/NotifyWatchResult"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Result"
+            "results"
           ]
         },
-        "Value": {
+        "RetryStrategy": {
           "type": "object",
           "properties": {
-            "arch": {
-              "type": "string"
-            },
-            "container": {
-              "type": "string"
-            },
-            "cpu-cores": {
-              "type": "integer"
+            "jitter-retry-time": {
+              "type": "boolean"
             },
-            "cpu-power": {
+            "max-retry-time": {
               "type": "integer"
             },
-            "instance-type": {
-              "type": "string"
-            },
-            "mem": {
+            "min-retry-time": {
               "type": "integer"
             },
-            "root-disk": {
+            "retry-time-factor": {
               "type": "integer"
             },
-            "spaces": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "tags": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "virt-type": {
-              "type": "string"
+            "should-retry": {
+              "type": "boolean"
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "should-retry",
+            "min-retry-time",
+            "max-retry-time",
+            "jitter-retry-time",
+            "retry-time-factor"
+          ]
         },
-        "caveat": {
+        "RetryStrategyResult": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "result": {
+              "$ref": "#/definitions/RetryStrategy"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
+          "additionalProperties": false
         },
-        "packet": {
+        "RetryStrategyResults": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/RetryStrategyResult"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "results"
           ]
         }
       }
     }
   },
   {
-    "Name": "ServiceScaler",
-    "Version": 1,
+    "Name": "SSHClient",
+    "Version": 2,
     "Schema": {
       "type": "object",
       "properties": {
-        "Rescale": {
+        "AllAddresses": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/ErrorResults"
+              "$ref": "#/definitions/SSHAddressesResults"
             }
           }
         },
-        "Watch": {
+        "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/StringsWatchResult"
+              "$ref": "#/definitions/SSHPublicKeysResults"
             }
           }
         }
         "Entities": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Entity"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "Entity": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "tag"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
           "additionalProperties": false
         },
-        "ErrorResult": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "SSHAddressResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "address": {
+              "type": "string"
+            },
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
-        "ErrorResults": {
+        "SSHAddressResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ErrorResult"
+                "$ref": "#/definitions/SSHAddressResult"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
-        "Macaroon": {
+        "SSHAddressesResult": {
           "type": "object",
           "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
+            "addresses": {
               "type": "array",
               "items": {
-                "type": "integer"
+                "type": "string"
               }
             },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
+            "addresses"
           ]
         },
-        "StringsWatchResult": {
+        "SSHAddressesResults": {
           "type": "object",
           "properties": {
-            "Changes": {
+            "results": {
               "type": "array",
               "items": {
-                "type": "string"
+                "$ref": "#/definitions/SSHAddressesResult"
               }
-            },
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "StringsWatcherId": {
-              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "StringsWatcherId",
-            "Changes",
-            "Error"
+            "results"
           ]
         },
-        "caveat": {
+        "SSHProxyResult": {
           "type": "object",
           "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+            "use-proxy": {
+              "type": "boolean"
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "use-proxy"
           ]
         },
-        "packet": {
+        "SSHPublicKeysResult": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "totalLen": {
-              "type": "integer"
+            "public-keys": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            }
+          },
+          "additionalProperties": false
+        },
+        "SSHPublicKeysResults": {
+          "type": "object",
+          "properties": {
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/SSHPublicKeysResult"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "results"
           ]
         }
       }
         "Entities": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Entity"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "Entity": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "tag"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
         "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ErrorResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          "additionalProperties": false
         },
         "SingularClaim": {
           "type": "object",
           "properties": {
-            "ControllerTag": {
+            "controller-tag": {
               "type": "string"
             },
-            "Duration": {
+            "duration": {
               "type": "integer"
             },
-            "ModelTag": {
+            "model-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "ModelTag",
-            "ControllerTag",
-            "Duration"
+            "model-tag",
+            "controller-tag",
+            "duration"
           ]
         },
         "SingularClaims": {
           "type": "object",
           "properties": {
-            "Claims": {
+            "claims": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/SingularClaim"
           },
           "additionalProperties": false,
           "required": [
-            "Claims"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "claims"
           ]
         }
       }
         "CreateSpaceParams": {
           "type": "object",
           "properties": {
-            "ProviderId": {
+            "provider-id": {
               "type": "string"
             },
-            "Public": {
+            "public": {
               "type": "boolean"
             },
-            "SpaceTag": {
+            "space-tag": {
               "type": "string"
             },
-            "SubnetTags": {
+            "subnet-tags": {
               "type": "array",
               "items": {
                 "type": "string"
           },
           "additionalProperties": false,
           "required": [
-            "SubnetTags",
-            "SpaceTag",
-            "Public"
+            "subnet-tags",
+            "space-tag",
+            "public"
           ]
         },
         "CreateSpacesParams": {
           "type": "object",
           "properties": {
-            "Spaces": {
+            "spaces": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/CreateSpaceParams"
           },
           "additionalProperties": false,
           "required": [
-            "Spaces"
+            "spaces"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
         "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ErrorResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "ListSpacesResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Space"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          "additionalProperties": false
         },
         "Space": {
           "type": "object",
           "properties": {
-            "Error": {
+            "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"
-            },
-            "ProviderId": {
-              "type": "string"
-            },
-            "SpaceTag": {
-              "type": "string"
-            },
-            "StaticRangeHighIP": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "StaticRangeLowIP": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "Status": {
+            "name": {
               "type": "string"
             },
-            "VLANTag": {
-              "type": "integer"
-            },
-            "Zones": {
+            "subnets": {
               "type": "array",
               "items": {
-                "type": "string"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "CIDR",
-            "VLANTag",
-            "Life",
-            "SpaceTag",
-            "Zones"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
+                "$ref": "#/definitions/Subnet"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "location",
-            "caveatId",
-            "verificationId"
+            "name",
+            "subnets"
           ]
         },
-        "packet": {
+        "Subnet": {
           "type": "object",
           "properties": {
-            "headerLen": {
-              "type": "integer"
+            "cidr": {
+              "type": "string"
             },
-            "start": {
-              "type": "integer"
+            "life": {
+              "type": "string"
+            },
+            "provider-id": {
+              "type": "string"
+            },
+            "space-tag": {
+              "type": "string"
+            },
+            "status": {
+              "type": "string"
             },
-            "totalLen": {
+            "vlan-tag": {
               "type": "integer"
+            },
+            "zones": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "cidr",
+            "vlan-tag",
+            "life",
+            "space-tag",
+            "zones"
           ]
         }
       }
         "StatusHistoryPruneArgs": {
           "type": "object",
           "properties": {
-            "MaxLogsPerEntity": {
+            "max-history-mb": {
+              "type": "integer"
+            },
+            "max-history-time": {
               "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "MaxLogsPerEntity"
+            "max-history-time",
+            "max-history-mb"
           ]
         }
       }
   },
   {
     "Name": "Storage",
-    "Version": 2,
+    "Version": 3,
     "Schema": {
       "type": "object",
       "properties": {
         "Entities": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Entity"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "Entity": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "tag"
           ]
         },
         "EntityStatus": {
           "type": "object",
           "properties": {
-            "Data": {
+            "data": {
               "type": "object",
               "patternProperties": {
                 ".*": {
                 }
               }
             },
-            "Info": {
+            "info": {
               "type": "string"
             },
-            "Since": {
+            "since": {
               "type": "string",
               "format": "date-time"
             },
-            "Status": {
+            "status": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Status",
-            "Info",
-            "Data",
-            "Since"
+            "status",
+            "info",
+            "since"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
         "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ErrorResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "FilesystemAttachmentInfo": {
           "type": "object",
           "properties": {
-            "mountpoint": {
+            "mount-point": {
               "type": "string"
             },
             "read-only": {
         "FilesystemDetails": {
           "type": "object",
           "properties": {
-            "filesystemtag": {
+            "filesystem-tag": {
               "type": "string"
             },
             "info": {
               "$ref": "#/definitions/FilesystemInfo"
             },
-            "machineattachments": {
+            "machine-attachments": {
               "type": "object",
               "patternProperties": {
                 ".*": {
             "storage": {
               "$ref": "#/definitions/StorageDetails"
             },
-            "volumetag": {
+            "volume-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "filesystemtag",
+            "filesystem-tag",
             "info",
             "status"
           ]
         "FilesystemInfo": {
           "type": "object",
           "properties": {
-            "filesystemid": {
+            "filesystem-id": {
               "type": "string"
             },
             "size": {
           },
           "additionalProperties": false,
           "required": [
-            "filesystemid",
+            "filesystem-id",
             "size"
           ]
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          "additionalProperties": false
         },
         "StorageAddParams": {
           "type": "object",
           "properties": {
-            "StorageName": {
+            "name": {
               "type": "string"
             },
             "storage": {
           "additionalProperties": false,
           "required": [
             "unit",
-            "StorageName",
+            "name",
             "storage"
           ]
         },
             "location": {
               "type": "string"
             },
-            "machinetag": {
+            "machine-tag": {
               "type": "string"
             },
-            "storagetag": {
+            "storage-tag": {
               "type": "string"
             },
-            "unittag": {
+            "unit-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "storagetag",
-            "unittag",
-            "machinetag"
+            "storage-tag",
+            "unit-tag",
+            "machine-tag"
           ]
         },
         "StorageConstraints": {
           "type": "object",
           "properties": {
-            "Count": {
+            "count": {
               "type": "integer"
             },
-            "Pool": {
+            "pool": {
               "type": "string"
             },
-            "Size": {
+            "size": {
               "type": "integer"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Pool",
-            "Size",
-            "Count"
-          ]
+          "additionalProperties": false
         },
         "StorageDetails": {
           "type": "object",
           "properties": {
-            "Persistent": {
-              "type": "boolean"
-            },
             "attachments": {
               "type": "object",
               "patternProperties": {
             "kind": {
               "type": "integer"
             },
-            "ownertag": {
+            "owner-tag": {
               "type": "string"
             },
+            "persistent": {
+              "type": "boolean"
+            },
             "status": {
               "$ref": "#/definitions/EntityStatus"
             },
-            "storagetag": {
+            "storage-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "storagetag",
-            "ownertag",
+            "storage-tag",
+            "owner-tag",
             "kind",
             "status",
-            "Persistent"
+            "persistent"
           ]
         },
         "StorageDetailsListResult": {
             "error": {
               "$ref": "#/definitions/Error"
             },
-            "storagepools": {
+            "storage-pools": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/StoragePool"
         "VolumeAttachmentInfo": {
           "type": "object",
           "properties": {
-            "busaddress": {
+            "bus-address": {
               "type": "string"
             },
-            "devicelink": {
+            "device-link": {
               "type": "string"
             },
-            "devicename": {
+            "device-name": {
               "type": "string"
             },
             "read-only": {
             "info": {
               "$ref": "#/definitions/VolumeInfo"
             },
-            "machineattachments": {
+            "machine-attachments": {
               "type": "object",
               "patternProperties": {
                 ".*": {
             "storage": {
               "$ref": "#/definitions/StorageDetails"
             },
-            "volumetag": {
+            "volume-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "volumetag",
+            "volume-tag",
             "info",
             "status"
           ]
         "VolumeInfo": {
           "type": "object",
           "properties": {
-            "hardwareid": {
+            "hardware-id": {
               "type": "string"
             },
             "persistent": {
             "size": {
               "type": "integer"
             },
-            "volumeid": {
+            "volume-id": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "volumeid",
+            "volume-id",
             "size",
             "persistent"
           ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
         }
       }
     }
   },
   {
     "Name": "StorageProvisioner",
-    "Version": 2,
+    "Version": 3,
     "Schema": {
       "type": "object",
       "properties": {
             }
           }
         },
-        "ModelConfig": {
-          "type": "object",
-          "properties": {
-            "Result": {
-              "$ref": "#/definitions/ModelConfigResult"
-            }
-          }
-        },
         "Remove": {
           "type": "object",
           "properties": {
             }
           }
         },
-        "WatchForModelConfigChanges": {
-          "type": "object",
-          "properties": {
-            "Result": {
-              "$ref": "#/definitions/NotifyWatchResult"
-            }
-          }
-        },
         "WatchMachines": {
           "type": "object",
           "properties": {
         "Entities": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Entity"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "Entity": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "tag"
           ]
         },
         "EntityStatusArgs": {
           "type": "object",
           "properties": {
-            "Data": {
+            "data": {
               "type": "object",
               "patternProperties": {
                 ".*": {
                 }
               }
             },
-            "Info": {
+            "info": {
               "type": "string"
             },
-            "Status": {
+            "status": {
               "type": "string"
             },
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag",
-            "Status",
-            "Info",
-            "Data"
+            "tag",
+            "status",
+            "info",
+            "data"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
         "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ErrorResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Filesystem": {
           "type": "object",
           "properties": {
-            "filesystemtag": {
+            "filesystem-tag": {
               "type": "string"
             },
             "info": {
               "$ref": "#/definitions/FilesystemInfo"
             },
-            "volumetag": {
+            "volume-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "filesystemtag",
+            "filesystem-tag",
             "info"
           ]
         },
         "FilesystemAttachment": {
           "type": "object",
           "properties": {
-            "filesystemtag": {
+            "filesystem-tag": {
               "type": "string"
             },
             "info": {
               "$ref": "#/definitions/FilesystemAttachmentInfo"
             },
-            "machinetag": {
+            "machine-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "filesystemtag",
-            "machinetag",
+            "filesystem-tag",
+            "machine-tag",
             "info"
           ]
         },
         "FilesystemAttachmentInfo": {
           "type": "object",
           "properties": {
-            "mountpoint": {
+            "mount-point": {
               "type": "string"
             },
             "read-only": {
         "FilesystemAttachmentParams": {
           "type": "object",
           "properties": {
-            "filesystemid": {
+            "filesystem-id": {
               "type": "string"
             },
-            "filesystemtag": {
+            "filesystem-tag": {
               "type": "string"
             },
-            "instanceid": {
+            "instance-id": {
               "type": "string"
             },
-            "machinetag": {
+            "machine-tag": {
               "type": "string"
             },
-            "mountpoint": {
+            "mount-point": {
               "type": "string"
             },
             "provider": {
           },
           "additionalProperties": false,
           "required": [
-            "filesystemtag",
-            "machinetag",
+            "filesystem-tag",
+            "machine-tag",
             "provider"
           ]
         },
         "FilesystemAttachments": {
           "type": "object",
           "properties": {
-            "filesystemattachments": {
+            "filesystem-attachments": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/FilesystemAttachment"
           },
           "additionalProperties": false,
           "required": [
-            "filesystemattachments"
+            "filesystem-attachments"
           ]
         },
         "FilesystemInfo": {
           "type": "object",
           "properties": {
-            "filesystemid": {
+            "filesystem-id": {
               "type": "string"
             },
             "size": {
           },
           "additionalProperties": false,
           "required": [
-            "filesystemid",
+            "filesystem-id",
             "size"
           ]
         },
                 }
               }
             },
-            "filesystemtag": {
+            "filesystem-tag": {
               "type": "string"
             },
             "provider": {
                 }
               }
             },
-            "volumetag": {
+            "volume-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "filesystemtag",
+            "filesystem-tag",
             "size",
             "provider"
           ]
         "LifeResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Life": {
+            "life": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Life",
-            "Error"
+            "life"
           ]
         },
         "LifeResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/LifeResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          "additionalProperties": false
         },
         "MachineStorageId": {
           "type": "object",
           "properties": {
-            "attachmenttag": {
+            "attachment-tag": {
               "type": "string"
             },
-            "machinetag": {
+            "machine-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "machinetag",
-            "attachmenttag"
+            "machine-tag",
+            "attachment-tag"
           ]
         },
         "MachineStorageIds": {
         "MachineStorageIdsWatchResult": {
           "type": "object",
           "properties": {
-            "Changes": {
+            "changes": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/MachineStorageId"
               }
             },
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "MachineStorageIdsWatcherId": {
+            "watcher-id": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "MachineStorageIdsWatcherId",
-            "Changes",
-            "Error"
+            "watcher-id",
+            "changes"
           ]
         },
         "MachineStorageIdsWatchResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/MachineStorageIdsWatchResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
-          ]
-        },
-        "ModelConfigResult": {
-          "type": "object",
-          "properties": {
-            "Config": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Config"
+            "results"
           ]
         },
         "NotifyWatchResult": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
             "NotifyWatcherId": {
               "type": "string"
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "NotifyWatcherId",
-            "Error"
+            "NotifyWatcherId"
           ]
         },
         "NotifyWatchResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/NotifyWatchResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "SetStatus": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/EntityStatusArgs"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "StringResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Result": {
+            "result": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Result"
+            "result"
           ]
         },
         "StringResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/StringResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "StringsWatchResult": {
           "type": "object",
           "properties": {
-            "Changes": {
+            "changes": {
               "type": "array",
               "items": {
                 "type": "string"
               }
             },
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "StringsWatcherId": {
+            "watcher-id": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "StringsWatcherId",
-            "Changes",
-            "Error"
+            "watcher-id"
           ]
         },
         "StringsWatchResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/StringsWatchResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Volume": {
             "info": {
               "$ref": "#/definitions/VolumeInfo"
             },
-            "volumetag": {
+            "volume-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "volumetag",
+            "volume-tag",
             "info"
           ]
         },
             "info": {
               "$ref": "#/definitions/VolumeAttachmentInfo"
             },
-            "machinetag": {
+            "machine-tag": {
               "type": "string"
             },
-            "volumetag": {
+            "volume-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "volumetag",
-            "machinetag",
+            "volume-tag",
+            "machine-tag",
             "info"
           ]
         },
         "VolumeAttachmentInfo": {
           "type": "object",
           "properties": {
-            "busaddress": {
+            "bus-address": {
               "type": "string"
             },
-            "devicelink": {
+            "device-link": {
               "type": "string"
             },
-            "devicename": {
+            "device-name": {
               "type": "string"
             },
             "read-only": {
         "VolumeAttachmentParams": {
           "type": "object",
           "properties": {
-            "instanceid": {
+            "instance-id": {
               "type": "string"
             },
-            "machinetag": {
+            "machine-tag": {
               "type": "string"
             },
             "provider": {
             "read-only": {
               "type": "boolean"
             },
-            "volumeid": {
+            "volume-id": {
               "type": "string"
             },
-            "volumetag": {
+            "volume-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "volumetag",
-            "machinetag",
+            "volume-tag",
+            "machine-tag",
             "provider"
           ]
         },
         "VolumeAttachments": {
           "type": "object",
           "properties": {
-            "volumeattachments": {
+            "volume-attachments": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/VolumeAttachment"
           },
           "additionalProperties": false,
           "required": [
-            "volumeattachments"
+            "volume-attachments"
           ]
         },
         "VolumeInfo": {
           "type": "object",
           "properties": {
-            "hardwareid": {
+            "hardware-id": {
               "type": "string"
             },
             "persistent": {
             "size": {
               "type": "integer"
             },
-            "volumeid": {
+            "volume-id": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "volumeid",
+            "volume-id",
             "size",
             "persistent"
           ]
                 }
               }
             },
-            "volumetag": {
+            "volume-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "volumetag",
+            "volume-tag",
             "size",
             "provider"
           ]
           "required": [
             "volumes"
           ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
         }
       }
     }
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          "additionalProperties": false
         },
         "StringsWatchResult": {
           "type": "object",
           "properties": {
-            "Changes": {
+            "changes": {
               "type": "array",
               "items": {
                 "type": "string"
               }
             },
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "StringsWatcherId": {
+            "watcher-id": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "StringsWatcherId",
-            "Changes",
-            "Error"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "watcher-id"
           ]
         }
       }
         "AddSubnetParams": {
           "type": "object",
           "properties": {
-            "SpaceTag": {
+            "space-tag": {
               "type": "string"
             },
-            "SubnetProviderId": {
+            "subnet-provider-id": {
               "type": "string"
             },
-            "SubnetTag": {
+            "subnet-tag": {
               "type": "string"
             },
-            "Zones": {
+            "zones": {
               "type": "array",
               "items": {
                 "type": "string"
           },
           "additionalProperties": false,
           "required": [
-            "SpaceTag"
+            "space-tag"
           ]
         },
         "AddSubnetsParams": {
           "type": "object",
           "properties": {
-            "Subnets": {
+            "subnets": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/AddSubnetParams"
           },
           "additionalProperties": false,
           "required": [
-            "Subnets"
+            "subnets"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
         "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ErrorResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "ListSubnetsResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Subnet"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          "additionalProperties": false
         },
         "SpaceResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Tag"
+            "tag"
           ]
         },
         "SpaceResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/SpaceResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Subnet": {
           "type": "object",
           "properties": {
-            "CIDR": {
+            "cidr": {
               "type": "string"
             },
-            "Life": {
+            "life": {
               "type": "string"
             },
-            "ProviderId": {
+            "provider-id": {
               "type": "string"
             },
-            "SpaceTag": {
+            "space-tag": {
               "type": "string"
             },
-            "StaticRangeHighIP": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "StaticRangeLowIP": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "Status": {
+            "status": {
               "type": "string"
             },
-            "VLANTag": {
+            "vlan-tag": {
               "type": "integer"
             },
-            "Zones": {
+            "zones": {
               "type": "array",
               "items": {
                 "type": "string"
           },
           "additionalProperties": false,
           "required": [
-            "CIDR",
-            "VLANTag",
-            "Life",
-            "SpaceTag",
-            "Zones"
+            "cidr",
+            "vlan-tag",
+            "life",
+            "space-tag",
+            "zones"
           ]
         },
         "SubnetsFilters": {
           "type": "object",
           "properties": {
-            "SpaceTag": {
+            "space-tag": {
               "type": "string"
             },
-            "Zone": {
+            "zone": {
               "type": "string"
             }
           },
         "ZoneResult": {
           "type": "object",
           "properties": {
-            "Available": {
+            "available": {
               "type": "boolean"
             },
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Name": {
+            "name": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Name",
-            "Available"
+            "name",
+            "available"
           ]
         },
         "ZoneResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ZoneResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "results"
           ]
         }
       }
         "EntityStatusArgs": {
           "type": "object",
           "properties": {
-            "Data": {
+            "data": {
               "type": "object",
               "patternProperties": {
                 ".*": {
                 }
               }
             },
-            "Info": {
+            "info": {
               "type": "string"
             },
-            "Status": {
+            "status": {
               "type": "string"
             },
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag",
-            "Status",
-            "Info",
-            "Data"
+            "tag",
+            "status",
+            "info",
+            "data"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
         "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ErrorResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          "additionalProperties": false
         },
         "ModelConfigResult": {
           "type": "object",
           "properties": {
-            "Config": {
+            "config": {
               "type": "object",
               "patternProperties": {
                 ".*": {
           },
           "additionalProperties": false,
           "required": [
-            "Config"
+            "config"
           ]
         },
         "NotifyWatchResult": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
             "NotifyWatcherId": {
               "type": "string"
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "NotifyWatcherId",
-            "Error"
+            "NotifyWatcherId"
           ]
         },
         "NotifyWatchResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/NotifyWatchResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "SetStatus": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/EntityStatusArgs"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "UndertakerModelInfo": {
           "type": "object",
           "properties": {
-            "GlobalName": {
+            "global-name": {
               "type": "string"
             },
-            "IsSystem": {
+            "is-system": {
               "type": "boolean"
             },
-            "Life": {
+            "life": {
               "type": "string"
             },
-            "Name": {
+            "name": {
               "type": "string"
             },
-            "UUID": {
+            "uuid": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "UUID",
-            "Name",
-            "GlobalName",
-            "IsSystem",
-            "Life"
+            "uuid",
+            "name",
+            "global-name",
+            "is-system",
+            "life"
           ]
         },
         "UndertakerModelInfoResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Result": {
+            "result": {
               "$ref": "#/definitions/UndertakerModelInfo"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Result"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "result"
           ]
         }
       }
         "Entities": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Entity"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "Entity": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "tag"
           ]
         },
         "EntityStatusArgs": {
           "type": "object",
           "properties": {
-            "Data": {
+            "data": {
               "type": "object",
               "patternProperties": {
                 ".*": {
                 }
               }
             },
-            "Info": {
+            "info": {
               "type": "string"
             },
-            "Status": {
+            "status": {
               "type": "string"
             },
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag",
-            "Status",
-            "Info",
-            "Data"
+            "tag",
+            "status",
+            "info",
+            "data"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          },
+          "additionalProperties": false
         },
         "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ErrorResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          "additionalProperties": false
         },
         "SetStatus": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/EntityStatusArgs"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "StringsWatchResult": {
           "type": "object",
           "properties": {
-            "Changes": {
+            "changes": {
               "type": "array",
               "items": {
                 "type": "string"
               }
             },
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "StringsWatcherId": {
+            "watcher-id": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "StringsWatcherId",
-            "Changes",
-            "Error"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "watcher-id"
           ]
         }
       }
   },
   {
     "Name": "Uniter",
-    "Version": 3,
+    "Version": 4,
     "Schema": {
       "type": "object",
       "properties": {
             }
           }
         },
+        "ApplicationStatus": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/ApplicationStatusResults"
+            }
+          }
+        },
         "AssignedMachine": {
           "type": "object",
           "properties": {
             }
           }
         },
-        "ServiceOwner": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/StringResults"
-            }
-          }
-        },
-        "ServiceStatus": {
+        "SetAgentStatus": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/Entities"
+              "$ref": "#/definitions/SetStatus"
             },
             "Result": {
-              "$ref": "#/definitions/ServiceStatusResults"
+              "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "SetAgentStatus": {
+        "SetApplicationStatus": {
           "type": "object",
           "properties": {
             "Params": {
             }
           }
         },
-        "SetServiceStatus": {
+        "SetStatus": {
           "type": "object",
           "properties": {
             "Params": {
             }
           }
         },
-        "SetStatus": {
+        "SetUnitStatus": {
           "type": "object",
           "properties": {
             "Params": {
             }
           }
         },
-        "SetUnitStatus": {
+        "SetWorkloadVersion": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/SetStatus"
+              "$ref": "#/definitions/EntityWorkloadVersions"
             },
             "Result": {
               "$ref": "#/definitions/ErrorResults"
             }
           }
         },
+        "WatchApplicationRelations": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/StringsWatchResults"
+            }
+          }
+        },
         "WatchConfigSettings": {
           "type": "object",
           "properties": {
             }
           }
         },
-        "WatchServiceRelations": {
+        "WatchStorageAttachments": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/Entities"
+              "$ref": "#/definitions/StorageAttachmentIds"
             },
             "Result": {
-              "$ref": "#/definitions/StringsWatchResults"
+              "$ref": "#/definitions/NotifyWatchResults"
             }
           }
         },
-        "WatchStorageAttachments": {
+        "WatchUnitAddresses": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/StorageAttachmentIds"
+              "$ref": "#/definitions/Entities"
             },
             "Result": {
               "$ref": "#/definitions/NotifyWatchResults"
             }
           }
         },
-        "WatchUnitAddresses": {
+        "WatchUnitStorageAttachments": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/NotifyWatchResults"
+              "$ref": "#/definitions/StringsWatchResults"
             }
           }
         },
-        "WatchUnitStorageAttachments": {
+        "WorkloadVersion": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/StringsWatchResults"
+              "$ref": "#/definitions/StringResults"
             }
           }
         }
         "APIHostPortsResult": {
           "type": "object",
           "properties": {
-            "Servers": {
+            "servers": {
               "type": "array",
               "items": {
                 "type": "array",
           },
           "additionalProperties": false,
           "required": [
-            "Servers"
+            "servers"
           ]
         },
         "Action": {
         "ActionExecutionResult": {
           "type": "object",
           "properties": {
-            "actiontag": {
+            "action-tag": {
               "type": "string"
             },
             "message": {
           },
           "additionalProperties": false,
           "required": [
-            "actiontag",
+            "action-tag",
             "status"
           ]
         },
         "Address": {
           "type": "object",
           "properties": {
-            "Scope": {
+            "scope": {
               "type": "string"
             },
-            "SpaceName": {
+            "space-name": {
               "type": "string"
             },
-            "Type": {
+            "type": {
               "type": "string"
             },
-            "Value": {
+            "value": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Value",
-            "Type",
-            "Scope"
+            "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": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Result": {
+            "result": {
               "type": "boolean"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Result"
+            "result"
           ]
         },
         "BoolResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/BoolResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "BytesResult": {
           "type": "object",
           "properties": {
-            "Result": {
+            "result": {
               "type": "array",
               "items": {
                 "type": "integer"
           },
           "additionalProperties": false,
           "required": [
-            "Result"
+            "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": {
+            "url": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "URL"
+            "url"
           ]
         },
         "CharmURLs": {
           "type": "object",
           "properties": {
-            "URLs": {
+            "urls": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/CharmURL"
           },
           "additionalProperties": false,
           "required": [
-            "URLs"
+            "urls"
           ]
         },
         "ConfigSettingsResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Settings": {
+            "settings": {
               "type": "object",
               "patternProperties": {
                 ".*": {
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Settings"
+            "settings"
           ]
         },
         "ConfigSettingsResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ConfigSettingsResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Endpoint": {
           "type": "object",
           "properties": {
-            "Relation": {
-              "$ref": "#/definitions/Relation"
-            },
-            "ServiceName": {
+            "application-name": {
               "type": "string"
+            },
+            "relation": {
+              "$ref": "#/definitions/CharmRelation"
             }
           },
           "additionalProperties": false,
           "required": [
-            "ServiceName",
-            "Relation"
+            "application-name",
+            "relation"
           ]
         },
         "Entities": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Entity"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "EntitiesCharmURL": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/EntityCharmURL"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "EntitiesPortRanges": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/EntityPortRange"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "Entity": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "tag"
           ]
         },
         "EntityCharmURL": {
           "type": "object",
           "properties": {
-            "CharmURL": {
+            "charm-url": {
               "type": "string"
             },
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag",
-            "CharmURL"
+            "tag",
+            "charm-url"
           ]
         },
         "EntityPortRange": {
           "type": "object",
           "properties": {
-            "FromPort": {
+            "from-port": {
               "type": "integer"
             },
-            "Protocol": {
+            "protocol": {
               "type": "string"
             },
-            "Tag": {
+            "tag": {
               "type": "string"
             },
-            "ToPort": {
+            "to-port": {
               "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag",
-            "Protocol",
-            "FromPort",
-            "ToPort"
+            "tag",
+            "protocol",
+            "from-port",
+            "to-port"
           ]
         },
         "EntityStatusArgs": {
           "type": "object",
           "properties": {
-            "Data": {
+            "data": {
               "type": "object",
               "patternProperties": {
                 ".*": {
                 }
               }
             },
-            "Info": {
+            "info": {
               "type": "string"
             },
-            "Status": {
+            "status": {
               "type": "string"
             },
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag",
-            "Status",
-            "Info",
-            "Data"
+            "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": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
         "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ErrorResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "GetLeadershipSettingsBulkResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/GetLeadershipSettingsResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "GetLeadershipSettingsResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Settings": {
+            "settings": {
               "type": "object",
               "patternProperties": {
                 ".*": {
           },
           "additionalProperties": false,
           "required": [
-            "Settings",
-            "Error"
+            "settings"
           ]
         },
         "HostPort": {
             "Address": {
               "$ref": "#/definitions/Address"
             },
-            "Port": {
+            "port": {
               "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
             "Address",
-            "Port"
+            "port"
           ]
         },
         "IntResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Result": {
+            "result": {
               "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Result"
+            "result"
           ]
         },
         "IntResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/IntResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "LifeResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Life": {
+            "life": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Life",
-            "Error"
+            "life"
           ]
         },
         "LifeResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/LifeResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          "additionalProperties": false
         },
         "MachinePortRange": {
           "type": "object",
           "properties": {
-            "PortRange": {
+            "port-range": {
               "$ref": "#/definitions/PortRange"
             },
-            "RelationTag": {
+            "relation-tag": {
               "type": "string"
             },
-            "UnitTag": {
+            "unit-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "UnitTag",
-            "RelationTag",
-            "PortRange"
+            "unit-tag",
+            "relation-tag",
+            "port-range"
           ]
         },
         "MachinePortsResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Ports": {
+            "ports": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/MachinePortRange"
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Ports"
+            "ports"
           ]
         },
         "MachinePortsResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/MachinePortsResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "MergeLeadershipSettingsBulkParams": {
           "type": "object",
           "properties": {
-            "Params": {
+            "params": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/MergeLeadershipSettingsParam"
           },
           "additionalProperties": false,
           "required": [
-            "Params"
+            "params"
           ]
         },
         "MergeLeadershipSettingsParam": {
           "type": "object",
           "properties": {
-            "ServiceTag": {
+            "application-tag": {
               "type": "string"
             },
-            "Settings": {
+            "settings": {
               "type": "object",
               "patternProperties": {
                 ".*": {
           },
           "additionalProperties": false,
           "required": [
-            "ServiceTag",
-            "Settings"
+            "application-tag",
+            "settings"
           ]
         },
         "MeterStatusResult": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Info": {
+            "info": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Code",
-            "Info",
-            "Error"
+            "code",
+            "info"
           ]
         },
         "MeterStatusResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/MeterStatusResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Metric": {
           "type": "object",
           "properties": {
-            "Key": {
+            "key": {
               "type": "string"
             },
-            "Time": {
+            "time": {
               "type": "string",
               "format": "date-time"
             },
-            "Value": {
+            "value": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Key",
-            "Value",
-            "Time"
+            "key",
+            "value",
+            "time"
           ]
         },
         "MetricBatch": {
           "type": "object",
           "properties": {
-            "CharmURL": {
+            "charm-url": {
               "type": "string"
             },
-            "Created": {
+            "created": {
               "type": "string",
               "format": "date-time"
             },
-            "Metrics": {
+            "metrics": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Metric"
               }
             },
-            "UUID": {
+            "uuid": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "UUID",
-            "CharmURL",
-            "Created",
-            "Metrics"
+            "uuid",
+            "charm-url",
+            "created",
+            "metrics"
           ]
         },
         "MetricBatchParam": {
           "type": "object",
           "properties": {
-            "Batch": {
+            "batch": {
               "$ref": "#/definitions/MetricBatch"
             },
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag",
-            "Batch"
+            "tag",
+            "batch"
           ]
         },
         "MetricBatchParams": {
           "type": "object",
           "properties": {
-            "Batches": {
+            "batches": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/MetricBatchParam"
           },
           "additionalProperties": false,
           "required": [
-            "Batches"
+            "batches"
           ]
         },
         "ModelConfigResult": {
           "type": "object",
           "properties": {
-            "Config": {
+            "config": {
               "type": "object",
               "patternProperties": {
                 ".*": {
           },
           "additionalProperties": false,
           "required": [
-            "Config"
+            "config"
           ]
         },
         "ModelResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Name": {
+            "name": {
               "type": "string"
             },
-            "UUID": {
+            "uuid": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Name",
-            "UUID"
+            "name",
+            "uuid"
           ]
         },
         "NetworkConfig": {
           "type": "object",
           "properties": {
-            "Address": {
+            "address": {
               "type": "string"
             },
-            "CIDR": {
+            "cidr": {
               "type": "string"
             },
-            "ConfigType": {
+            "config-type": {
               "type": "string"
             },
-            "DNSSearchDomains": {
+            "device-index": {
+              "type": "integer"
+            },
+            "disabled": {
+              "type": "boolean"
+            },
+            "dns-search-domains": {
               "type": "array",
               "items": {
                 "type": "string"
               }
             },
-            "DNSServers": {
+            "dns-servers": {
               "type": "array",
               "items": {
                 "type": "string"
               }
             },
-            "DeviceIndex": {
-              "type": "integer"
-            },
-            "Disabled": {
-              "type": "boolean"
-            },
-            "GatewayAddress": {
+            "gateway-address": {
               "type": "string"
             },
-            "InterfaceName": {
+            "interface-name": {
               "type": "string"
             },
-            "InterfaceType": {
+            "interface-type": {
               "type": "string"
             },
-            "MACAddress": {
+            "mac-address": {
               "type": "string"
             },
-            "MTU": {
+            "mtu": {
               "type": "integer"
             },
-            "NoAutoStart": {
+            "no-auto-start": {
               "type": "boolean"
             },
-            "ParentInterfaceName": {
+            "parent-interface-name": {
               "type": "string"
             },
-            "ProviderAddressId": {
+            "provider-address-id": {
               "type": "string"
             },
-            "ProviderId": {
+            "provider-id": {
               "type": "string"
             },
-            "ProviderSpaceId": {
+            "provider-space-id": {
               "type": "string"
             },
-            "ProviderSubnetId": {
+            "provider-subnet-id": {
               "type": "string"
             },
-            "ProviderVLANId": {
+            "provider-vlan-id": {
               "type": "string"
             },
-            "VLANTag": {
+            "vlan-tag": {
               "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "DeviceIndex",
-            "MACAddress",
-            "CIDR",
-            "MTU",
-            "ProviderId",
-            "ProviderSubnetId",
-            "ProviderSpaceId",
-            "ProviderAddressId",
-            "ProviderVLANId",
-            "VLANTag",
-            "InterfaceName",
-            "ParentInterfaceName",
-            "InterfaceType",
-            "Disabled"
+            "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": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
             "NotifyWatcherId": {
               "type": "string"
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "NotifyWatcherId",
-            "Error"
+            "NotifyWatcherId"
           ]
         },
         "NotifyWatchResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/NotifyWatchResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "PortRange": {
           "type": "object",
           "properties": {
-            "FromPort": {
+            "from-port": {
               "type": "integer"
             },
-            "Protocol": {
-              "type": "string"
-            },
-            "ToPort": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "FromPort",
-            "ToPort",
-            "Protocol"
-          ]
-        },
-        "Relation": {
-          "type": "object",
-          "properties": {
-            "Interface": {
+            "protocol": {
               "type": "string"
             },
-            "Limit": {
+            "to-port": {
               "type": "integer"
-            },
-            "Name": {
-              "type": "string"
-            },
-            "Optional": {
-              "type": "boolean"
-            },
-            "Role": {
-              "type": "string"
-            },
-            "Scope": {
-              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Name",
-            "Role",
-            "Interface",
-            "Optional",
-            "Limit",
-            "Scope"
+            "from-port",
+            "to-port",
+            "protocol"
           ]
         },
         "RelationIds": {
           "type": "object",
           "properties": {
-            "RelationIds": {
+            "relation-ids": {
               "type": "array",
               "items": {
                 "type": "integer"
           },
           "additionalProperties": false,
           "required": [
-            "RelationIds"
+            "relation-ids"
           ]
         },
         "RelationResult": {
           "type": "object",
           "properties": {
-            "Endpoint": {
+            "endpoint": {
               "$ref": "#/definitions/Endpoint"
             },
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Id": {
+            "id": {
               "type": "integer"
             },
-            "Key": {
+            "key": {
               "type": "string"
             },
-            "Life": {
+            "life": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Life",
-            "Id",
-            "Key",
-            "Endpoint"
+            "life",
+            "id",
+            "key",
+            "endpoint"
           ]
         },
         "RelationResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/RelationResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "RelationUnit": {
           "type": "object",
           "properties": {
-            "Relation": {
+            "relation": {
               "type": "string"
             },
-            "Unit": {
+            "unit": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Relation",
-            "Unit"
+            "relation",
+            "unit"
           ]
         },
         "RelationUnitPair": {
           "type": "object",
           "properties": {
-            "LocalUnit": {
+            "local-unit": {
               "type": "string"
             },
-            "Relation": {
+            "relation": {
               "type": "string"
             },
-            "RemoteUnit": {
+            "remote-unit": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Relation",
-            "LocalUnit",
-            "RemoteUnit"
+            "relation",
+            "local-unit",
+            "remote-unit"
           ]
         },
         "RelationUnitPairs": {
           "type": "object",
           "properties": {
-            "RelationUnitPairs": {
+            "relation-unit-pairs": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/RelationUnitPair"
           },
           "additionalProperties": false,
           "required": [
-            "RelationUnitPairs"
+            "relation-unit-pairs"
           ]
         },
         "RelationUnitSettings": {
           "type": "object",
           "properties": {
-            "Relation": {
+            "relation": {
               "type": "string"
             },
-            "Settings": {
+            "settings": {
               "type": "object",
               "patternProperties": {
                 ".*": {
                 }
               }
             },
-            "Unit": {
+            "unit": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Relation",
-            "Unit",
-            "Settings"
+            "relation",
+            "unit",
+            "settings"
           ]
         },
         "RelationUnits": {
           "type": "object",
           "properties": {
-            "RelationUnits": {
+            "relation-units": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/RelationUnit"
           },
           "additionalProperties": false,
           "required": [
-            "RelationUnits"
+            "relation-units"
           ]
         },
         "RelationUnitsChange": {
           "type": "object",
           "properties": {
-            "Changed": {
+            "changed": {
               "type": "object",
               "patternProperties": {
                 ".*": {
                 }
               }
             },
-            "Departed": {
+            "departed": {
               "type": "array",
               "items": {
                 "type": "string"
           },
           "additionalProperties": false,
           "required": [
-            "Changed",
-            "Departed"
+            "changed"
           ]
         },
         "RelationUnitsSettings": {
           "type": "object",
           "properties": {
-            "RelationUnits": {
+            "relation-units": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/RelationUnitSettings"
           },
           "additionalProperties": false,
           "required": [
-            "RelationUnits"
+            "relation-units"
           ]
         },
         "RelationUnitsWatchResult": {
           "type": "object",
           "properties": {
-            "Changes": {
+            "changes": {
               "$ref": "#/definitions/RelationUnitsChange"
             },
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "RelationUnitsWatcherId": {
+            "watcher-id": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "RelationUnitsWatcherId",
-            "Changes",
-            "Error"
+            "watcher-id",
+            "changes"
           ]
         },
         "RelationUnitsWatchResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/RelationUnitsWatchResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "ResolvedModeResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Mode": {
+            "mode": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Mode"
+            "mode"
           ]
         },
         "ResolvedModeResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ResolvedModeResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
-          ]
-        },
-        "ServiceStatusResult": {
-          "type": "object",
-          "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
-            "Service": {
-              "$ref": "#/definitions/StatusResult"
-            },
-            "Units": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "$ref": "#/definitions/StatusResult"
-                }
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Service",
-            "Units",
-            "Error"
-          ]
-        },
-        "ServiceStatusResults": {
-          "type": "object",
-          "properties": {
-            "Results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ServiceStatusResult"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Results"
+            "results"
           ]
         },
         "SetStatus": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/EntityStatusArgs"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "SettingsResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Settings": {
+            "settings": {
               "type": "object",
               "patternProperties": {
                 ".*": {
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Settings"
+            "settings"
           ]
         },
         "SettingsResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/SettingsResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "StatusResult": {
           "type": "object",
           "properties": {
-            "Data": {
+            "data": {
               "type": "object",
               "patternProperties": {
                 ".*": {
                 }
               }
             },
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Id": {
+            "id": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "type": "string"
             },
-            "Life": {
+            "life": {
               "type": "string"
             },
-            "Since": {
+            "since": {
               "type": "string",
               "format": "date-time"
             },
-            "Status": {
+            "status": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Id",
-            "Life",
-            "Status",
-            "Info",
-            "Data",
-            "Since"
+            "id",
+            "life",
+            "status",
+            "info",
+            "data",
+            "since"
           ]
         },
         "StatusResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/StatusResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "StorageAddParams": {
           "type": "object",
           "properties": {
-            "StorageName": {
+            "name": {
               "type": "string"
             },
             "storage": {
           "additionalProperties": false,
           "required": [
             "unit",
-            "StorageName",
+            "name",
             "storage"
           ]
         },
         "StorageAttachment": {
           "type": "object",
           "properties": {
-            "Kind": {
+            "kind": {
               "type": "integer"
             },
-            "Life": {
+            "life": {
               "type": "string"
             },
-            "Location": {
+            "location": {
               "type": "string"
             },
-            "OwnerTag": {
+            "owner-tag": {
               "type": "string"
             },
-            "StorageTag": {
+            "storage-tag": {
               "type": "string"
             },
-            "UnitTag": {
+            "unit-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "StorageTag",
-            "OwnerTag",
-            "UnitTag",
-            "Kind",
-            "Location",
-            "Life"
+            "storage-tag",
+            "owner-tag",
+            "unit-tag",
+            "kind",
+            "location",
+            "life"
           ]
         },
         "StorageAttachmentId": {
           "type": "object",
           "properties": {
-            "storagetag": {
+            "storage-tag": {
               "type": "string"
             },
-            "unittag": {
+            "unit-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "storagetag",
-            "unittag"
+            "storage-tag",
+            "unit-tag"
           ]
         },
         "StorageAttachmentIds": {
         "StorageConstraints": {
           "type": "object",
           "properties": {
-            "Count": {
+            "count": {
               "type": "integer"
             },
-            "Pool": {
+            "pool": {
               "type": "string"
             },
-            "Size": {
+            "size": {
               "type": "integer"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Pool",
-            "Size",
-            "Count"
-          ]
+          "additionalProperties": false
         },
         "StoragesAddParams": {
           "type": "object",
         "StringBoolResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Ok": {
+            "ok": {
               "type": "boolean"
             },
-            "Result": {
+            "result": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Result",
-            "Ok"
+            "result",
+            "ok"
           ]
         },
         "StringBoolResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/StringBoolResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "StringResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Result": {
+            "result": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Result"
+            "result"
           ]
         },
         "StringResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/StringResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "StringsResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Result": {
+            "result": {
               "type": "array",
               "items": {
                 "type": "string"
               }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error",
-            "Result"
-          ]
+          "additionalProperties": false
         },
         "StringsResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/StringsResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "StringsWatchResult": {
           "type": "object",
           "properties": {
-            "Changes": {
+            "changes": {
               "type": "array",
               "items": {
                 "type": "string"
               }
             },
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "StringsWatcherId": {
+            "watcher-id": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "StringsWatcherId",
-            "Changes",
-            "Error"
+            "watcher-id"
           ]
         },
         "StringsWatchResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/StringsWatchResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "UnitNetworkConfig": {
           "type": "object",
           "properties": {
-            "BindingName": {
+            "binding-name": {
               "type": "string"
             },
-            "UnitTag": {
+            "unit-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "UnitTag",
-            "BindingName"
+            "unit-tag",
+            "binding-name"
           ]
         },
         "UnitNetworkConfigResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Info": {
+            "info": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/NetworkConfig"
           },
           "additionalProperties": false,
           "required": [
-            "Error",
-            "Info"
+            "info"
           ]
         },
         "UnitNetworkConfigResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/UnitNetworkConfigResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "UnitSettings": {
           "type": "object",
           "properties": {
-            "Version": {
+            "version": {
               "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Version"
+            "version"
           ]
         },
         "UnitsNetworkConfig": {
           "type": "object",
           "properties": {
-            "Args": {
+            "args": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/UnitNetworkConfig"
           },
           "additionalProperties": false,
           "required": [
-            "Args"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "args"
           ]
         }
       }
         "Entities": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Entity"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "EntitiesVersion": {
           "type": "object",
           "properties": {
-            "AgentTools": {
+            "agent-tools": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/EntityVersion"
           },
           "additionalProperties": false,
           "required": [
-            "AgentTools"
+            "agent-tools"
           ]
         },
         "Entity": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "tag"
           ]
         },
         "EntityVersion": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "tag": {
               "type": "string"
             },
-            "Tools": {
+            "tools": {
               "$ref": "#/definitions/Version"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag",
-            "Tools"
+            "tag",
+            "tools"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
         "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ErrorResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          "additionalProperties": false
         },
         "NotifyWatchResult": {
           "type": "object",
           "properties": {
-            "Error": {
-              "$ref": "#/definitions/Error"
-            },
             "NotifyWatcherId": {
               "type": "string"
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "NotifyWatcherId",
-            "Error"
+            "NotifyWatcherId"
           ]
         },
         "NotifyWatchResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/NotifyWatchResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Number": {
         "ToolsResult": {
           "type": "object",
           "properties": {
-            "DisableSSLHostnameVerification": {
+            "disable-ssl-hostname-verification": {
               "type": "boolean"
             },
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "ToolsList": {
+            "tools": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Tools"
           },
           "additionalProperties": false,
           "required": [
-            "ToolsList",
-            "DisableSSLHostnameVerification",
-            "Error"
+            "tools",
+            "disable-ssl-hostname-verification"
           ]
         },
         "ToolsResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ToolsResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Version": {
           "type": "object",
           "properties": {
-            "Version": {
+            "version": {
               "$ref": "#/definitions/Binary"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Version"
+            "version"
           ]
         },
         "VersionResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "Version": {
+            "version": {
               "$ref": "#/definitions/Number"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Version",
-            "Error"
-          ]
+          "additionalProperties": false
         },
         "VersionResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/VersionResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "results"
           ]
         }
       }
             }
           }
         },
-        "CreateLocalLoginMacaroon": {
+        "DisableUser": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/MacaroonResults"
+              "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "DisableUser": {
+        "EnableUser": {
           "type": "object",
           "properties": {
             "Params": {
             }
           }
         },
-        "EnableUser": {
+        "RemoveUser": {
           "type": "object",
           "properties": {
             "Params": {
             "display-name": {
               "type": "string"
             },
-            "model-access-permission": {
-              "type": "string"
-            },
             "password": {
               "type": "string"
             },
-            "shared-model-tags": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
             "username": {
               "type": "string"
             }
           "additionalProperties": false,
           "required": [
             "username",
-            "display-name",
-            "shared-model-tags"
+            "display-name"
           ]
         },
         "AddUserResult": {
         "Entities": {
           "type": "object",
           "properties": {
-            "Entities": {
+            "entities": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Entity"
           },
           "additionalProperties": false,
           "required": [
-            "Entities"
+            "entities"
           ]
         },
         "Entity": {
           "type": "object",
           "properties": {
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag"
+            "tag"
           ]
         },
         "EntityPassword": {
           "type": "object",
           "properties": {
-            "Password": {
+            "password": {
               "type": "string"
             },
-            "Tag": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Tag",
-            "Password"
+            "tag",
+            "password"
           ]
         },
         "EntityPasswords": {
           "type": "object",
           "properties": {
-            "Changes": {
+            "changes": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/EntityPassword"
           },
           "additionalProperties": false,
           "required": [
-            "Changes"
+            "changes"
           ]
         },
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         "ErrorResult": {
           "type": "object",
           "properties": {
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "Error"
-          ]
+          "additionalProperties": false
         },
         "ErrorResults": {
           "type": "object",
           "properties": {
-            "Results": {
+            "results": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/ErrorResult"
           },
           "additionalProperties": false,
           "required": [
-            "Results"
+            "results"
           ]
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
-        },
-        "MacaroonResult": {
-          "type": "object",
-          "properties": {
-            "error": {
-              "$ref": "#/definitions/Error"
-            },
-            "result": {
-              "$ref": "#/definitions/Macaroon"
-            }
-          },
           "additionalProperties": false
         },
-        "MacaroonResults": {
-          "type": "object",
-          "properties": {
-            "results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/MacaroonResult"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "results"
-          ]
-        },
         "UserInfo": {
           "type": "object",
           "properties": {
+            "access": {
+              "type": "string"
+            },
             "created-by": {
               "type": "string"
             },
           "required": [
             "username",
             "display-name",
+            "access",
             "created-by",
             "date-created",
             "disabled"
           "required": [
             "results"
           ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
-          ]
         }
       }
     }
         "Error": {
           "type": "object",
           "properties": {
-            "Code": {
+            "code": {
               "type": "string"
             },
-            "Info": {
+            "info": {
               "$ref": "#/definitions/ErrorInfo"
             },
-            "Message": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Message",
-            "Code"
+            "message",
+            "code"
           ]
         },
         "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Macaroon": {
+            "macaroon": {
               "$ref": "#/definitions/Macaroon"
             },
-            "MacaroonPath": {
+            "macaroon-path": {
               "type": "string"
             }
           },
         },
         "Macaroon": {
           "type": "object",
-          "properties": {
-            "caveats": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/caveat"
-              }
-            },
-            "data": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            },
-            "id": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "sig": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "data",
-            "location",
-            "id",
-            "caveats",
-            "sig"
-          ]
+          "additionalProperties": false
         },
         "MachineStorageId": {
           "type": "object",
           "properties": {
-            "attachmenttag": {
+            "attachment-tag": {
               "type": "string"
             },
-            "machinetag": {
+            "machine-tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "machinetag",
-            "attachmenttag"
+            "machine-tag",
+            "attachment-tag"
           ]
         },
         "MachineStorageIdsWatchResult": {
           "type": "object",
           "properties": {
-            "Changes": {
+            "changes": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/MachineStorageId"
               }
             },
-            "Error": {
+            "error": {
               "$ref": "#/definitions/Error"
             },
-            "MachineStorageIdsWatcherId": {
+            "watcher-id": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "MachineStorageIdsWatcherId",
-            "Changes",
-            "Error"
-          ]
-        },
-        "caveat": {
-          "type": "object",
-          "properties": {
-            "caveatId": {
-              "$ref": "#/definitions/packet"
-            },
-            "location": {
-              "$ref": "#/definitions/packet"
-            },
-            "verificationId": {
-              "$ref": "#/definitions/packet"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "location",
-            "caveatId",
-            "verificationId"
-          ]
-        },
-        "packet": {
-          "type": "object",
-          "properties": {
-            "headerLen": {
-              "type": "integer"
-            },
-            "start": {
-              "type": "integer"
-            },
-            "totalLen": {
-              "type": "integer"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "start",
-            "totalLen",
-            "headerLen"
+            "watcher-id",
+            "changes"
           ]
         }
       }