Regen client against juju-2.0.2
[osm/N2VC.git] / juju / client / schemas.json
index 4aabb1b..1191024 100644 (file)
             }
           }
         },
+        "GetCloudSpec": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/ModelTag"
+            },
+            "Result": {
+              "$ref": "#/definitions/CloudSpecResult"
+            }
+          }
+        },
         "GetEntities": {
           "type": "object",
           "properties": {
             }
           }
         },
+        "WatchCredentials": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/NotifyWatchResults"
+            }
+          }
+        },
         "WatchForModelConfigChanges": {
           "type": "object",
           "properties": {
             "config"
           ]
         },
+        "ModelTag": {
+          "type": "object",
+          "additionalProperties": false
+        },
         "NotifyWatchResult": {
           "type": "object",
           "properties": {
             "NotifyWatcherId"
           ]
         },
+        "NotifyWatchResults": {
+          "type": "object",
+          "properties": {
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/NotifyWatchResult"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
+        },
         "StateServingInfo": {
           "type": "object",
           "properties": {
   },
   {
     "Name": "Application",
-    "Version": 1,
+    "Version": 3,
     "Schema": {
       "type": "object",
       "properties": {
             "charm-url": {
               "type": "string"
             },
+            "config-settings": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "string"
+                }
+              }
+            },
+            "config-settings-yaml": {
+              "type": "string"
+            },
             "force-series": {
               "type": "boolean"
             },
                   "type": "string"
                 }
               }
+            },
+            "storage-constraints": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/StorageConstraints"
+                }
+              }
             }
           },
           "additionalProperties": false,
             "constraints"
           ]
         },
+        "StorageConstraints": {
+          "type": "object",
+          "properties": {
+            "count": {
+              "type": "integer"
+            },
+            "pool": {
+              "type": "string"
+            },
+            "size": {
+              "type": "integer"
+            }
+          },
+          "additionalProperties": false
+        },
         "StringResult": {
           "type": "object",
           "properties": {
             "container": {
               "type": "string"
             },
-            "cpu-cores": {
+            "cores": {
               "type": "integer"
             },
             "cpu-power": {
       }
     }
   },
+  {
+    "Name": "ApplicationRelationsWatcher",
+    "Version": 1,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "Next": {
+          "type": "object",
+          "properties": {
+            "Result": {
+              "$ref": "#/definitions/ApplicationRelationsWatchResult"
+            }
+          }
+        },
+        "Stop": {
+          "type": "object"
+        }
+      },
+      "definitions": {
+        "ApplicationRelationsChange": {
+          "type": "object",
+          "properties": {
+            "changed": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/RelationChange"
+              }
+            },
+            "removed": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              }
+            }
+          },
+          "additionalProperties": false
+        },
+        "ApplicationRelationsWatchResult": {
+          "type": "object",
+          "properties": {
+            "ApplicationRelationsWatcherId": {
+              "type": "string"
+            },
+            "changes": {
+              "$ref": "#/definitions/ApplicationRelationsChange"
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "ApplicationRelationsWatcherId"
+          ]
+        },
+        "Error": {
+          "type": "object",
+          "properties": {
+            "code": {
+              "type": "string"
+            },
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
+            },
+            "message": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "message",
+            "code"
+          ]
+        },
+        "ErrorInfo": {
+          "type": "object",
+          "properties": {
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
+            },
+            "macaroon-path": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false
+        },
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "RelationChange": {
+          "type": "object",
+          "properties": {
+            "changedunits": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/RelationUnitChange"
+                }
+              }
+            },
+            "departedunits": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "id": {
+              "type": "integer"
+            },
+            "life": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "id",
+            "life"
+          ]
+        },
+        "RelationUnitChange": {
+          "type": "object",
+          "properties": {
+            "settings": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
+            }
+          },
+          "additionalProperties": false
+        }
+      }
+    }
+  },
   {
     "Name": "ApplicationScaler",
     "Version": 1,
     }
   },
   {
-    "Name": "CharmRevisionUpdater",
-    "Version": 2,
+    "Name": "Bundle",
+    "Version": 1,
     "Schema": {
       "type": "object",
       "properties": {
-        "UpdateLatestRevisions": {
+        "GetChanges": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/BundleChangesParams"
+            },
             "Result": {
-              "$ref": "#/definitions/ErrorResult"
+              "$ref": "#/definitions/BundleChangesResults"
             }
           }
         }
       },
       "definitions": {
-        "Error": {
+        "BundleChange": {
           "type": "object",
           "properties": {
-            "code": {
-              "type": "string"
+            "args": {
+              "type": "array",
+              "items": {
+                "type": "object",
+                "additionalProperties": true
+              }
             },
-            "info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "id": {
+              "type": "string"
             },
-            "message": {
+            "method": {
               "type": "string"
+            },
+            "requires": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "message",
-            "code"
+            "id",
+            "method",
+            "args",
+            "requires"
           ]
         },
-        "ErrorInfo": {
+        "BundleChangesParams": {
           "type": "object",
           "properties": {
-            "macaroon": {
-              "$ref": "#/definitions/Macaroon"
-            },
-            "macaroon-path": {
+            "yaml": {
               "type": "string"
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "yaml"
+          ]
         },
-        "ErrorResult": {
+        "BundleChangesResults": {
           "type": "object",
           "properties": {
-            "error": {
-              "$ref": "#/definitions/Error"
+            "changes": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/BundleChange"
+              }
+            },
+            "errors": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             }
           },
           "additionalProperties": false
-        },
-        "Macaroon": {
-          "type": "object",
-          "additionalProperties": false
+        }
+      }
+    }
+  },
+  {
+    "Name": "CharmRevisionUpdater",
+    "Version": 2,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "UpdateLatestRevisions": {
+          "type": "object",
+          "properties": {
+            "Result": {
+              "$ref": "#/definitions/ErrorResult"
+            }
+          }
+        }
+      },
+      "definitions": {
+        "Error": {
+          "type": "object",
+          "properties": {
+            "code": {
+              "type": "string"
+            },
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
+            },
+            "message": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "message",
+            "code"
+          ]
+        },
+        "ErrorInfo": {
+          "type": "object",
+          "properties": {
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
+            },
+            "macaroon-path": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false
+        },
+        "ErrorResult": {
+          "type": "object",
+          "properties": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            }
+          },
+          "additionalProperties": false
+        },
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
         }
       }
     }
                   "$ref": "#/definitions/CharmMetric"
                 }
               }
+            },
+            "plan": {
+              "$ref": "#/definitions/CharmPlan"
             }
           },
           "additionalProperties": false,
           "required": [
-            "metrics"
+            "metrics",
+            "plan"
           ]
         },
         "CharmOption": {
             "type"
           ]
         },
+        "CharmPlan": {
+          "type": "object",
+          "properties": {
+            "required": {
+              "type": "boolean"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "required"
+          ]
+        },
         "CharmRelation": {
           "type": "object",
           "properties": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/GetBundleChangesParams"
+              "$ref": "#/definitions/BundleChangesParams"
             },
             "Result": {
-              "$ref": "#/definitions/GetBundleChangesResults"
+              "$ref": "#/definitions/BundleChangesResults"
             }
           }
         },
             }
           }
         },
-        "ModelDefaults": {
-          "type": "object",
-          "properties": {
-            "Result": {
-              "$ref": "#/definitions/ModelDefaultsResult"
-            }
-          }
-        },
         "ModelGet": {
           "type": "object",
           "properties": {
             }
           }
         },
-        "SetModelDefaults": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/SetModelDefaults"
-            },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
-            }
-          }
-        },
         "StatusHistory": {
           "type": "object",
           "properties": {
             }
           }
         },
-        "UnsetModelDefaults": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/UnsetModelDefaults"
-            },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
-            }
-          }
-        },
         "WatchAll": {
           "type": "object",
           "properties": {
             "Arch"
           ]
         },
-        "BundleChangesChange": {
+        "BundleChange": {
           "type": "object",
           "properties": {
             "args": {
             "requires"
           ]
         },
+        "BundleChangesParams": {
+          "type": "object",
+          "properties": {
+            "yaml": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "yaml"
+          ]
+        },
+        "BundleChangesResults": {
+          "type": "object",
+          "properties": {
+            "changes": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/BundleChange"
+              }
+            },
+            "errors": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            }
+          },
+          "additionalProperties": false
+        },
         "ConfigValue": {
           "type": "object",
           "properties": {
               "items": {
                 "$ref": "#/definitions/RelationStatus"
               }
+            },
+            "remote-applications": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/RemoteApplicationStatus"
+                }
+              }
             }
           },
           "additionalProperties": false,
             "model",
             "machines",
             "applications",
+            "remote-applications",
             "relations"
           ]
         },
-        "GetBundleChangesParams": {
-          "type": "object",
-          "properties": {
-            "yaml": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "yaml"
-          ]
-        },
-        "GetBundleChangesResults": {
-          "type": "object",
-          "properties": {
-            "changes": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/BundleChangesChange"
-              }
-            },
-            "errors": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            }
-          },
-          "additionalProperties": false
-        },
         "GetConstraintsResults": {
           "type": "object",
           "properties": {
           "type": "object",
           "additionalProperties": false
         },
+        "MachineHardware": {
+          "type": "object",
+          "properties": {
+            "arch": {
+              "type": "string"
+            },
+            "availability-zone": {
+              "type": "string"
+            },
+            "cores": {
+              "type": "integer"
+            },
+            "cpu-power": {
+              "type": "integer"
+            },
+            "mem": {
+              "type": "integer"
+            },
+            "root-disk": {
+              "type": "integer"
+            },
+            "tags": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            }
+          },
+          "additionalProperties": false
+        },
         "MachineStatus": {
           "type": "object",
           "properties": {
             "instance-status": {
               "$ref": "#/definitions/DetailedStatus"
             },
+            "ip-addresses": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
             "jobs": {
               "type": "array",
               "items": {
             "agent-status",
             "instance-status",
             "dns-name",
+            "ip-addresses",
             "instance-id",
             "series",
             "id",
             "config"
           ]
         },
-        "ModelDefaultValues": {
+        "ModelInfo": {
           "type": "object",
           "properties": {
+            "cloud-credential-tag": {
+              "type": "string"
+            },
             "cloud-region": {
               "type": "string"
             },
             "cloud-tag": {
               "type": "string"
             },
-            "config": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
+            "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": [
-            "config"
+            "name",
+            "uuid",
+            "controller-uuid",
+            "provider-type",
+            "default-series",
+            "cloud-tag",
+            "owner-tag",
+            "life",
+            "status",
+            "users",
+            "machines"
           ]
         },
-        "ModelDefaults": {
+        "ModelMachineInfo": {
           "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": {
-              "type": "string"
-            },
-            "cloud-credential-tag": {
-              "type": "string"
-            },
-            "cloud-region": {
-              "type": "string"
-            },
-            "controller-uuid": {
-              "type": "string"
-            },
-            "default-series": {
-              "type": "string"
-            },
-            "life": {
-              "type": "string"
+            "hardware": {
+              "$ref": "#/definitions/MachineHardware"
             },
-            "name": {
-              "type": "string"
+            "has-vote": {
+              "type": "boolean"
             },
-            "owner-tag": {
+            "id": {
               "type": "string"
             },
-            "provider-type": {
+            "instance-id": {
               "type": "string"
             },
             "status": {
-              "$ref": "#/definitions/EntityStatus"
-            },
-            "users": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ModelUserInfo"
-              }
-            },
-            "uuid": {
               "type": "string"
+            },
+            "wants-vote": {
+              "type": "boolean"
             }
           },
           "additionalProperties": false,
           "required": [
-            "name",
-            "uuid",
-            "controller-uuid",
-            "provider-type",
-            "default-series",
-            "cloud",
-            "owner-tag",
-            "life",
-            "status",
-            "users"
+            "id"
           ]
         },
         "ModelSet": {
             "available-version": {
               "type": "string"
             },
-            "cloud": {
+            "cloud-tag": {
               "type": "string"
             },
             "migration": {
           "additionalProperties": false,
           "required": [
             "name",
-            "cloud",
+            "cloud-tag",
             "version",
             "available-version"
           ]
             "keys"
           ]
         },
-        "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": {
             "public-address"
           ]
         },
-        "RegionDefaults": {
+        "RelationStatus": {
           "type": "object",
           "properties": {
-            "region-name": {
+            "endpoints": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/EndpointStatus"
+              }
+            },
+            "id": {
+              "type": "integer"
+            },
+            "interface": {
               "type": "string"
             },
-            "value": {
-              "type": "object",
-              "additionalProperties": true
+            "key": {
+              "type": "string"
+            },
+            "scope": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "region-name",
-            "value"
+            "id",
+            "key",
+            "interface",
+            "scope",
+            "endpoints"
           ]
         },
-        "RelationStatus": {
+        "RemoteApplicationStatus": {
           "type": "object",
           "properties": {
+            "application-name": {
+              "type": "string"
+            },
+            "application-url": {
+              "type": "string"
+            },
             "endpoints": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/EndpointStatus"
+                "$ref": "#/definitions/RemoteEndpoint"
               }
             },
-            "id": {
-              "type": "integer"
+            "err": {
+              "type": "object",
+              "additionalProperties": true
+            },
+            "life": {
+              "type": "string"
+            },
+            "relations": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "array",
+                  "items": {
+                    "type": "string"
+                  }
+                }
+              }
             },
+            "status": {
+              "$ref": "#/definitions/DetailedStatus"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "application-url",
+            "application-name",
+            "endpoints",
+            "life",
+            "relations",
+            "status"
+          ]
+        },
+        "RemoteEndpoint": {
+          "type": "object",
+          "properties": {
             "interface": {
               "type": "string"
             },
-            "key": {
+            "limit": {
+              "type": "integer"
+            },
+            "name": {
+              "type": "string"
+            },
+            "role": {
               "type": "string"
             },
             "scope": {
           },
           "additionalProperties": false,
           "required": [
-            "id",
-            "key",
+            "name",
+            "role",
             "interface",
-            "scope",
-            "endpoints"
+            "limit",
+            "scope"
           ]
         },
         "ResolveCharmResult": {
             "version"
           ]
         },
-        "SetModelDefaults": {
-          "type": "object",
-          "properties": {
-            "config": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ModelDefaultValues"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "config"
-          ]
-        },
         "StatusHistoryFilter": {
           "type": "object",
           "properties": {
             "charm": {
               "type": "string"
             },
+            "leader": {
+              "type": "boolean"
+            },
             "machine": {
               "type": "string"
             },
             "subordinates"
           ]
         },
-        "UnsetModelDefaults": {
-          "type": "object",
-          "properties": {
-            "keys": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ModelUnsetKeys"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "keys"
-          ]
-        },
         "Value": {
           "type": "object",
           "properties": {
             "container": {
               "type": "string"
             },
-            "cpu-cores": {
+            "cores": {
               "type": "integer"
             },
             "cpu-power": {
             }
           }
         },
+        "GetCloudSpec": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/ModelTag"
+            },
+            "Result": {
+              "$ref": "#/definitions/CloudSpecResult"
+            }
+          }
+        },
         "GetControllerAccess": {
           "type": "object",
           "properties": {
             }
           }
         },
+        "HostedModelConfigs": {
+          "type": "object",
+          "properties": {
+            "Result": {
+              "$ref": "#/definitions/HostedModelConfigsResults"
+            }
+          }
+        },
         "InitiateMigration": {
           "type": "object",
           "properties": {
             "results"
           ]
         },
-        "InitiateMigrationArgs": {
-          "type": "object",
-          "properties": {
-            "specs": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/MigrationSpec"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "specs"
-          ]
-        },
-        "InitiateMigrationResult": {
+        "HostedModelConfig": {
           "type": "object",
           "properties": {
-            "error": {
-              "$ref": "#/definitions/Error"
+            "cloud-spec": {
+              "$ref": "#/definitions/CloudSpec"
             },
-            "migration-id": {
+            "config": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "name": {
+              "type": "string"
+            },
+            "owner": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "name",
+            "owner"
+          ]
+        },
+        "HostedModelConfigsResults": {
+          "type": "object",
+          "properties": {
+            "models": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/HostedModelConfig"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "models"
+          ]
+        },
+        "InitiateMigrationArgs": {
+          "type": "object",
+          "properties": {
+            "specs": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/MigrationSpec"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "specs"
+          ]
+        },
+        "InitiateMigrationResult": {
+          "type": "object",
+          "properties": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "migration-id": {
               "type": "string"
             },
             "model-tag": {
           "type": "object",
           "additionalProperties": false
         },
+        "MachineHardware": {
+          "type": "object",
+          "properties": {
+            "arch": {
+              "type": "string"
+            },
+            "availability-zone": {
+              "type": "string"
+            },
+            "cores": {
+              "type": "integer"
+            },
+            "cpu-power": {
+              "type": "integer"
+            },
+            "mem": {
+              "type": "integer"
+            },
+            "root-disk": {
+              "type": "integer"
+            },
+            "tags": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            }
+          },
+          "additionalProperties": false
+        },
         "MigrationSpec": {
           "type": "object",
           "properties": {
+            "external-control": {
+              "type": "boolean"
+            },
             "model-tag": {
               "type": "string"
             },
+            "skip-initial-prechecks": {
+              "type": "boolean"
+            },
             "target-info": {
               "$ref": "#/definitions/MigrationTargetInfo"
             }
           "additionalProperties": false,
           "required": [
             "model-tag",
-            "target-info"
+            "target-info",
+            "external-control",
+            "skip-initial-prechecks"
           ]
         },
         "MigrationTargetInfo": {
             "controller-tag": {
               "type": "string"
             },
-            "macaroon": {
+            "macaroons": {
               "type": "string"
             },
             "password": {
             "config"
           ]
         },
+        "ModelMachineInfo": {
+          "type": "object",
+          "properties": {
+            "hardware": {
+              "$ref": "#/definitions/MachineHardware"
+            },
+            "has-vote": {
+              "type": "boolean"
+            },
+            "id": {
+              "type": "string"
+            },
+            "instance-id": {
+              "type": "string"
+            },
+            "status": {
+              "type": "string"
+            },
+            "wants-vote": {
+              "type": "boolean"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "id"
+          ]
+        },
         "ModelStatus": {
           "type": "object",
           "properties": {
             "life": {
               "type": "string"
             },
+            "machines": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ModelMachineInfo"
+              }
+            },
             "model-tag": {
               "type": "string"
             },
             "models"
           ]
         },
+        "ModelTag": {
+          "type": "object",
+          "additionalProperties": false
+        },
         "ModifyControllerAccess": {
           "type": "object",
           "properties": {
             }
           }
         },
+        "SetStatus": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/SetStatus"
+            },
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
+            }
+          }
+        },
         "StateAddresses": {
           "type": "object",
           "properties": {
             }
           }
         },
+        "UpdateStatus": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/SetStatus"
+            },
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
+            }
+          }
+        },
         "WatchAPIHostPorts": {
           "type": "object",
           "properties": {
             "changes"
           ]
         },
+        "EntityStatusArgs": {
+          "type": "object",
+          "properties": {
+            "data": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
+            },
+            "info": {
+              "type": "string"
+            },
+            "status": {
+              "type": "string"
+            },
+            "tag": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "tag",
+            "status",
+            "info",
+            "data"
+          ]
+        },
         "Error": {
           "type": "object",
           "properties": {
             "NotifyWatcherId"
           ]
         },
+        "SetStatus": {
+          "type": "object",
+          "properties": {
+            "entities": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/EntityStatusArgs"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "entities"
+          ]
+        },
         "StringResult": {
           "type": "object",
           "properties": {
             }
           }
         },
+        "GetCloudSpec": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/ModelTag"
+            },
+            "Result": {
+              "$ref": "#/definitions/CloudSpecResult"
+            }
+          }
+        },
         "GetExposed": {
           "type": "object",
           "properties": {
             "config"
           ]
         },
+        "ModelTag": {
+          "type": "object",
+          "additionalProperties": false
+        },
         "NotifyWatchResult": {
           "type": "object",
           "properties": {
             "constraints": {
               "$ref": "#/definitions/Value"
             },
-            "model-tag": {
-              "type": "string"
-            },
             "num-controllers": {
               "type": "integer"
             },
           },
           "additionalProperties": false,
           "required": [
-            "model-tag",
             "num-controllers"
           ]
         },
             "ha-members"
           ]
         },
+        "MongoVersion": {
+          "type": "object",
+          "properties": {
+            "engine": {
+              "type": "string"
+            },
+            "major": {
+              "type": "integer"
+            },
+            "minor": {
+              "type": "integer"
+            },
+            "patch": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "major",
+            "minor",
+            "patch",
+            "engine"
+          ]
+        },
         "ResumeReplicationParams": {
           "type": "object",
           "properties": {
           "type": "object",
           "properties": {
             "target": {
-              "$ref": "#/definitions/Version"
+              "$ref": "#/definitions/MongoVersion"
             }
           },
           "additionalProperties": false,
             "container": {
               "type": "string"
             },
-            "cpu-cores": {
+            "cores": {
               "type": "integer"
             },
             "cpu-power": {
             }
           },
           "additionalProperties": false
-        },
-        "Version": {
-          "type": "object",
-          "properties": {
-            "Major": {
-              "type": "integer"
-            },
-            "Minor": {
-              "type": "integer"
-            },
-            "Patch": {
-              "type": "string"
-            },
-            "StorageEngine": {
-              "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Major",
-            "Minor",
-            "Patch",
-            "StorageEngine"
-          ]
         }
       }
     }
             "container": {
               "type": "string"
             },
-            "cpu-cores": {
+            "cores": {
               "type": "integer"
             },
             "cpu-power": {
               "type": "string",
               "format": "date-time"
             },
+            "unit": {
+              "type": "string"
+            },
             "value": {
               "type": "string"
             }
           "required": [
             "time",
             "key",
-            "value"
+            "value",
+            "unit"
           ]
         },
         "MetricResults": {
             "name": {
               "type": "string"
             },
+            "owner-tag": {
+              "type": "string"
+            },
             "uuid": {
               "type": "string"
             }
           "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"
+            "target-info",
+            "external-control",
+            "skip-initial-prechecks"
           ]
         },
         "MigrationTargetInfo": {
             "controller-tag": {
               "type": "string"
             },
-            "macaroon": {
+            "macaroons": {
               "type": "string"
             },
             "password": {
             "attempt": {
               "type": "integer"
             },
+            "external-control": {
+              "type": "boolean"
+            },
             "migration-id": {
               "type": "string"
             },
             "migration-id",
             "attempt",
             "phase",
+            "external-control",
             "source-api-addrs",
             "source-ca-cert",
             "target-api-addrs",
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/TargetPrechecksArgs"
+              "$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": {
             "version",
             "uri"
           ]
-        },
-        "TargetPrechecksArgs": {
-          "type": "object",
-          "properties": {
-            "agent-version": {
-              "$ref": "#/definitions/Number"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "agent-version"
-          ]
         }
       }
     }
     "Schema": {
       "type": "object",
       "properties": {
-        "ModelDefaults": {
-          "type": "object",
-          "properties": {
-            "Result": {
-              "$ref": "#/definitions/ModelDefaultsResult"
-            }
-          }
-        },
         "ModelGet": {
           "type": "object",
           "properties": {
               "$ref": "#/definitions/ModelUnset"
             }
           }
-        },
-        "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": {
             "source"
           ]
         },
-        "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
-        },
         "ModelConfigResults": {
           "type": "object",
           "properties": {
             "config"
           ]
         },
-        "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"
-          ]
-        },
         "ModelSet": {
           "type": "object",
           "properties": {
           "required": [
             "keys"
           ]
-        },
-        "ModelUnsetKeys": {
-          "type": "object",
-          "properties": {
-            "cloud-region": {
-              "type": "string"
-            },
-            "cloud-tag": {
-              "type": "string"
-            },
-            "keys": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "keys"
-          ]
-        },
-        "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"
-          ]
         }
       }
     }
             }
           }
         },
-        "DestroyModel": {
-          "type": "object"
-        },
         "DestroyModels": {
           "type": "object",
           "properties": {
             }
           }
         },
+        "ModelDefaults": {
+          "type": "object",
+          "properties": {
+            "Result": {
+              "$ref": "#/definitions/ModelDefaultsResult"
+            }
+          }
+        },
         "ModelInfo": {
           "type": "object",
           "properties": {
             }
           }
         },
+        "ModelStatus": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/ModelStatusResults"
+            }
+          }
+        },
         "ModifyModelAccess": {
           "type": "object",
           "properties": {
               "$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": {
           "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": {
             "owner-tag"
           ]
         },
-        "ModelCreateArgs": {
+        "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": {
-            "cloud-tag": {
-              "type": "string"
-            },
             "config": {
               "type": "object",
               "patternProperties": {
                 ".*": {
-                  "type": "object",
-                  "additionalProperties": true
+                  "$ref": "#/definitions/ModelDefaults"
                 }
               }
-            },
-            "credential": {
-              "type": "string"
-            },
-            "name": {
-              "type": "string"
-            },
-            "owner-tag": {
-              "type": "string"
-            },
-            "region": {
-              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "name",
-            "owner-tag"
+            "config"
           ]
         },
         "ModelInfo": {
           "type": "object",
           "properties": {
-            "cloud": {
-              "type": "string"
-            },
             "cloud-credential-tag": {
               "type": "string"
             },
             "cloud-region": {
               "type": "string"
             },
+            "cloud-tag": {
+              "type": "string"
+            },
             "controller-uuid": {
               "type": "string"
             },
             "life": {
               "type": "string"
             },
+            "machines": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ModelMachineInfo"
+              }
+            },
             "name": {
               "type": "string"
             },
             "controller-uuid",
             "provider-type",
             "default-series",
-            "cloud",
+            "cloud-tag",
             "owner-tag",
             "life",
             "status",
-            "users"
+            "users",
+            "machines"
           ]
         },
         "ModelInfoResult": {
             "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": {
             "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": {
             "container": {
               "type": "string"
             },
-            "cpu-cores": {
+            "cores": {
               "type": "integer"
             },
             "cpu-power": {
   },
   {
     "Name": "SSHClient",
-    "Version": 1,
+    "Version": 2,
     "Schema": {
       "type": "object",
       "properties": {
+        "AllAddresses": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/SSHAddressesResults"
+            }
+          }
+        },
         "PrivateAddress": {
           "type": "object",
           "properties": {
             "results"
           ]
         },
+        "SSHAddressesResult": {
+          "type": "object",
+          "properties": {
+            "addresses": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "addresses"
+          ]
+        },
+        "SSHAddressesResults": {
+          "type": "object",
+          "properties": {
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/SSHAddressesResult"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
+        },
         "SSHProxyResult": {
           "type": "object",
           "properties": {
             }
           }
         },
-        "CreateLocalLoginMacaroon": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/MacaroonResults"
-            }
-          }
-        },
         "DisableUser": {
           "type": "object",
           "properties": {
           "type": "object",
           "additionalProperties": false
         },
-        "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": {