Regen schema to pick up missing APIs
[osm/N2VC.git] / juju / client / schemas.json
index 1191024..474b204 100644 (file)
       }
     }
   },
-  {
-    "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,
             "agent-status": {
               "$ref": "#/definitions/DetailedStatus"
             },
+            "constraints": {
+              "type": "string"
+            },
             "containers": {
               "type": "object",
               "patternProperties": {
             "series",
             "id",
             "containers",
+            "constraints",
             "hardware",
             "jobs",
             "has-vote",
                 "$ref": "#/definitions/ModelMachineInfo"
               }
             },
+            "migration": {
+              "$ref": "#/definitions/ModelMigrationStatus"
+            },
             "name": {
               "type": "string"
             },
             "id"
           ]
         },
+        "ModelMigrationStatus": {
+          "type": "object",
+          "properties": {
+            "end": {
+              "type": "string",
+              "format": "date-time"
+            },
+            "start": {
+              "type": "string",
+              "format": "date-time"
+            },
+            "status": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "status",
+            "start"
+          ]
+        },
         "ModelSet": {
           "type": "object",
           "properties": {
             }
           }
         },
+        "InstanceTypes": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/CloudInstanceTypesConstraints"
+            },
+            "Result": {
+              "$ref": "#/definitions/InstanceTypesResults"
+            }
+          }
+        },
         "RevokeCredentials": {
           "type": "object",
           "properties": {
           },
           "additionalProperties": false
         },
+        "CloudInstanceTypesConstraint": {
+          "type": "object",
+          "properties": {
+            "cloud-tag": {
+              "type": "string"
+            },
+            "constraints": {
+              "$ref": "#/definitions/Value"
+            },
+            "region": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "cloud-tag",
+            "region"
+          ]
+        },
+        "CloudInstanceTypesConstraints": {
+          "type": "object",
+          "properties": {
+            "constraints": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/CloudInstanceTypesConstraint"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "constraints"
+          ]
+        },
         "CloudRegion": {
           "type": "object",
           "properties": {
             "results"
           ]
         },
+        "InstanceType": {
+          "type": "object",
+          "properties": {
+            "arches": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "cost": {
+              "type": "integer"
+            },
+            "cpu-cores": {
+              "type": "integer"
+            },
+            "deprecated": {
+              "type": "boolean"
+            },
+            "memory": {
+              "type": "integer"
+            },
+            "name": {
+              "type": "string"
+            },
+            "root-disk": {
+              "type": "integer"
+            },
+            "virt-type": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "arches",
+            "cpu-cores",
+            "memory"
+          ]
+        },
+        "InstanceTypesResult": {
+          "type": "object",
+          "properties": {
+            "cost-currency": {
+              "type": "string"
+            },
+            "cost-divisor": {
+              "type": "integer"
+            },
+            "cost-unit": {
+              "type": "string"
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "instance-types": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/InstanceType"
+              }
+            }
+          },
+          "additionalProperties": false
+        },
+        "InstanceTypesResults": {
+          "type": "object",
+          "properties": {
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/InstanceTypesResult"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
+        },
         "Macaroon": {
           "type": "object",
           "additionalProperties": false
             }
           },
           "additionalProperties": false
-        }
-      }
-    }
-  },
-  {
-    "Name": "Controller",
-    "Version": 3,
-    "Schema": {
+        },
+        "Value": {
+          "type": "object",
+          "properties": {
+            "arch": {
+              "type": "string"
+            },
+            "container": {
+              "type": "string"
+            },
+            "cores": {
+              "type": "integer"
+            },
+            "cpu-power": {
+              "type": "integer"
+            },
+            "instance-type": {
+              "type": "string"
+            },
+            "mem": {
+              "type": "integer"
+            },
+            "root-disk": {
+              "type": "integer"
+            },
+            "spaces": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "tags": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "virt-type": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false
+        }
+      }
+    }
+  },
+  {
+    "Name": "Controller",
+    "Version": 3,
+    "Schema": {
       "type": "object",
       "properties": {
         "AllModels": {
               "$ref": "#/definitions/AddMachinesResults"
             }
           }
+        },
+        "InstanceTypes": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/ModelInstanceTypesConstraints"
+            },
+            "Result": {
+              "$ref": "#/definitions/InstanceTypesResults"
+            }
+          }
         }
       },
       "definitions": {
           },
           "additionalProperties": false
         },
+        "InstanceType": {
+          "type": "object",
+          "properties": {
+            "arches": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "cost": {
+              "type": "integer"
+            },
+            "cpu-cores": {
+              "type": "integer"
+            },
+            "deprecated": {
+              "type": "boolean"
+            },
+            "memory": {
+              "type": "integer"
+            },
+            "name": {
+              "type": "string"
+            },
+            "root-disk": {
+              "type": "integer"
+            },
+            "virt-type": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "arches",
+            "cpu-cores",
+            "memory"
+          ]
+        },
+        "InstanceTypesResult": {
+          "type": "object",
+          "properties": {
+            "cost-currency": {
+              "type": "string"
+            },
+            "cost-divisor": {
+              "type": "integer"
+            },
+            "cost-unit": {
+              "type": "string"
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "instance-types": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/InstanceType"
+              }
+            }
+          },
+          "additionalProperties": false
+        },
+        "InstanceTypesResults": {
+          "type": "object",
+          "properties": {
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/InstanceTypesResult"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
+        },
         "Macaroon": {
           "type": "object",
           "additionalProperties": false
         },
+        "ModelInstanceTypesConstraint": {
+          "type": "object",
+          "properties": {
+            "value": {
+              "$ref": "#/definitions/Value"
+            }
+          },
+          "additionalProperties": false
+        },
+        "ModelInstanceTypesConstraints": {
+          "type": "object",
+          "properties": {
+            "constraints": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ModelInstanceTypesConstraint"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "constraints"
+          ]
+        },
         "Placement": {
           "type": "object",
           "properties": {
             "provider-vlan-id": {
               "type": "string"
             },
+            "routes": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/NetworkRoute"
+              }
+            },
             "vlan-tag": {
               "type": "integer"
             }
             "disabled"
           ]
         },
+        "NetworkRoute": {
+          "type": "object",
+          "properties": {
+            "destination-cidr": {
+              "type": "string"
+            },
+            "gateway-ip": {
+              "type": "string"
+            },
+            "metric": {
+              "type": "integer"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "destination-cidr",
+            "gateway-ip",
+            "metric"
+          ]
+        },
         "NotifyWatchResult": {
           "type": "object",
           "properties": {
             "agent-version": {
               "$ref": "#/definitions/Number"
             },
+            "controller-agent-version": {
+              "$ref": "#/definitions/Number"
+            },
             "name": {
               "type": "string"
             },
             "uuid",
             "name",
             "owner-tag",
-            "agent-version"
+            "agent-version",
+            "controller-agent-version"
           ]
         },
         "MigrationSpec": {
                 "type": "string"
               }
             },
+            "resources": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/SerializedModelResource"
+              }
+            },
             "tools": {
               "type": "array",
               "items": {
           "required": [
             "bytes",
             "charms",
-            "tools"
+            "tools",
+            "resources"
+          ]
+        },
+        "SerializedModelResource": {
+          "type": "object",
+          "properties": {
+            "application": {
+              "type": "string"
+            },
+            "application-revision": {
+              "$ref": "#/definitions/SerializedModelResourceRevision"
+            },
+            "charmstore-revision": {
+              "$ref": "#/definitions/SerializedModelResourceRevision"
+            },
+            "name": {
+              "type": "string"
+            },
+            "unit-revisions": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/SerializedModelResourceRevision"
+                }
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "application",
+            "name",
+            "application-revision",
+            "charmstore-revision",
+            "unit-revisions"
+          ]
+        },
+        "SerializedModelResourceRevision": {
+          "type": "object",
+          "properties": {
+            "description": {
+              "type": "string"
+            },
+            "fingerprint": {
+              "type": "string"
+            },
+            "origin": {
+              "type": "string"
+            },
+            "path": {
+              "type": "string"
+            },
+            "revision": {
+              "type": "integer"
+            },
+            "size": {
+              "type": "integer"
+            },
+            "timestamp": {
+              "type": "string",
+              "format": "date-time"
+            },
+            "type": {
+              "type": "string"
+            },
+            "username": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "revision",
+            "type",
+            "path",
+            "description",
+            "origin",
+            "fingerprint",
+            "size",
+            "timestamp"
           ]
         },
         "SerializedModelTools": {
             }
           }
         },
+        "AdoptResources": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/AdoptResourcesArgs"
+            }
+          }
+        },
         "Import": {
           "type": "object",
           "properties": {
             }
           }
         },
+        "LatestLogTime": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/ModelArgs"
+            },
+            "Result": {
+              "type": "string",
+              "format": "date-time"
+            }
+          }
+        },
         "Prechecks": {
           "type": "object",
           "properties": {
         }
       },
       "definitions": {
-        "MigrationModelInfo": {
+        "AdoptResourcesArgs": {
           "type": "object",
           "properties": {
-            "agent-version": {
-              "$ref": "#/definitions/Number"
-            },
-            "name": {
-              "type": "string"
-            },
-            "owner-tag": {
+            "model-tag": {
               "type": "string"
             },
-            "uuid": {
-              "type": "string"
+            "source-controller-version": {
+              "$ref": "#/definitions/Number"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "model-tag",
+            "source-controller-version"
+          ]
+        },
+        "MigrationModelInfo": {
+          "type": "object",
+          "properties": {
+            "agent-version": {
+              "$ref": "#/definitions/Number"
+            },
+            "controller-agent-version": {
+              "$ref": "#/definitions/Number"
+            },
+            "name": {
+              "type": "string"
+            },
+            "owner-tag": {
+              "type": "string"
+            },
+            "uuid": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
             "uuid",
             "name",
             "owner-tag",
-            "agent-version"
+            "agent-version",
+            "controller-agent-version"
           ]
         },
         "ModelArgs": {
                 "type": "string"
               }
             },
+            "resources": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/SerializedModelResource"
+              }
+            },
             "tools": {
               "type": "array",
               "items": {
           "required": [
             "bytes",
             "charms",
-            "tools"
+            "tools",
+            "resources"
+          ]
+        },
+        "SerializedModelResource": {
+          "type": "object",
+          "properties": {
+            "application": {
+              "type": "string"
+            },
+            "application-revision": {
+              "$ref": "#/definitions/SerializedModelResourceRevision"
+            },
+            "charmstore-revision": {
+              "$ref": "#/definitions/SerializedModelResourceRevision"
+            },
+            "name": {
+              "type": "string"
+            },
+            "unit-revisions": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/SerializedModelResourceRevision"
+                }
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "application",
+            "name",
+            "application-revision",
+            "charmstore-revision",
+            "unit-revisions"
+          ]
+        },
+        "SerializedModelResourceRevision": {
+          "type": "object",
+          "properties": {
+            "description": {
+              "type": "string"
+            },
+            "fingerprint": {
+              "type": "string"
+            },
+            "origin": {
+              "type": "string"
+            },
+            "path": {
+              "type": "string"
+            },
+            "revision": {
+              "type": "integer"
+            },
+            "size": {
+              "type": "integer"
+            },
+            "timestamp": {
+              "type": "string",
+              "format": "date-time"
+            },
+            "type": {
+              "type": "string"
+            },
+            "username": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "revision",
+            "type",
+            "path",
+            "description",
+            "origin",
+            "fingerprint",
+            "size",
+            "timestamp"
           ]
         },
         "SerializedModelTools": {
                 "$ref": "#/definitions/ModelMachineInfo"
               }
             },
+            "migration": {
+              "$ref": "#/definitions/ModelMigrationStatus"
+            },
             "name": {
               "type": "string"
             },
             "id"
           ]
         },
+        "ModelMigrationStatus": {
+          "type": "object",
+          "properties": {
+            "end": {
+              "type": "string",
+              "format": "date-time"
+            },
+            "start": {
+              "type": "string",
+              "format": "date-time"
+            },
+            "status": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "status",
+            "start"
+          ]
+        },
         "ModelStatus": {
           "type": "object",
           "properties": {
     }
   },
   {
-    "Name": "Pinger",
+    "Name": "Payloads",
     "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": {
+        "List": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/Entities"
+              "$ref": "#/definitions/EnvListArgs"
             },
             "Result": {
-              "$ref": "#/definitions/ConstraintsResults"
+              "$ref": "#/definitions/EnvListResults"
             }
           }
-        },
-        "ContainerConfig": {
+        }
+      },
+      "definitions": {
+        "EnvListArgs": {
           "type": "object",
           "properties": {
-            "Result": {
-              "$ref": "#/definitions/ContainerConfig"
+            "patterns": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "patterns"
+          ]
         },
-        "ContainerManagerConfig": {
+        "EnvListResults": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/ContainerManagerConfigParams"
-            },
-            "Result": {
-              "$ref": "#/definitions/ContainerManagerConfig"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Payload"
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
         },
-        "ControllerConfig": {
+        "Payload": {
           "type": "object",
           "properties": {
-            "Result": {
-              "$ref": "#/definitions/ControllerConfigResult"
+            "class": {
+              "type": "string"
+            },
+            "id": {
+              "type": "string"
+            },
+            "labels": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "machine": {
+              "type": "string"
+            },
+            "status": {
+              "type": "string"
+            },
+            "type": {
+              "type": "string"
+            },
+            "unit": {
+              "type": "string"
             }
-          }
-        },
-        "DistributionGroup": {
+          },
+          "additionalProperties": false,
+          "required": [
+            "class",
+            "type",
+            "id",
+            "status",
+            "labels",
+            "unit",
+            "machine"
+          ]
+        }
+      }
+    }
+  },
+  {
+    "Name": "PayloadsHookContext",
+    "Version": 1,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "List": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/DistributionGroupResults"
+              "$ref": "#/definitions/PayloadResults"
             }
           }
         },
-        "EnsureDead": {
+        "LookUp": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/Entities"
+              "$ref": "#/definitions/LookUpArgs"
             },
             "Result": {
-              "$ref": "#/definitions/ErrorResults"
+              "$ref": "#/definitions/PayloadResults"
             }
           }
         },
-        "FindTools": {
+        "SetStatus": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/FindToolsParams"
+              "$ref": "#/definitions/SetStatusArgs"
             },
             "Result": {
-              "$ref": "#/definitions/FindToolsResult"
+              "$ref": "#/definitions/PayloadResults"
             }
           }
         },
-        "GetContainerInterfaceInfo": {
+        "Track": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/Entities"
+              "$ref": "#/definitions/TrackArgs"
             },
             "Result": {
-              "$ref": "#/definitions/MachineNetworkConfigResults"
+              "$ref": "#/definitions/PayloadResults"
             }
           }
         },
-        "InstanceId": {
+        "Untrack": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/StringResults"
+              "$ref": "#/definitions/PayloadResults"
             }
           }
-        },
-        "InstanceStatus": {
+        }
+      },
+      "definitions": {
+        "Entities": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/StatusResults"
+            "entities": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Entity"
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "entities"
+          ]
         },
-        "Life": {
+        "Entity": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/LifeResults"
+            "tag": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "tag"
+          ]
         },
-        "MachinesWithTransientErrors": {
+        "Error": {
           "type": "object",
           "properties": {
-            "Result": {
-              "$ref": "#/definitions/StatusResults"
+            "code": {
+              "type": "string"
+            },
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
+            },
+            "message": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "message",
+            "code"
+          ]
         },
-        "MarkMachinesForRemoval": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
+            "macaroon-path": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false
         },
-        "ModelConfig": {
+        "LookUpArg": {
           "type": "object",
           "properties": {
-            "Result": {
-              "$ref": "#/definitions/ModelConfigResult"
+            "id": {
+              "type": "string"
+            },
+            "name": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "name",
+            "id"
+          ]
         },
-        "ModelUUID": {
+        "LookUpArgs": {
           "type": "object",
           "properties": {
-            "Result": {
-              "$ref": "#/definitions/StringResult"
+            "args": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/LookUpArg"
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "args"
+          ]
         },
-        "PrepareContainerInterfaceInfo": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "Payload": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
+            "class": {
+              "type": "string"
             },
-            "Result": {
-              "$ref": "#/definitions/MachineNetworkConfigResults"
+            "id": {
+              "type": "string"
+            },
+            "labels": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "machine": {
+              "type": "string"
+            },
+            "status": {
+              "type": "string"
+            },
+            "type": {
+              "type": "string"
+            },
+            "unit": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "class",
+            "type",
+            "id",
+            "status",
+            "labels",
+            "unit",
+            "machine"
+          ]
         },
-        "ProvisioningInfo": {
+        "PayloadResult": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
+            "Entity": {
+              "$ref": "#/definitions/Entity"
             },
-            "Result": {
-              "$ref": "#/definitions/ProvisioningInfoResults"
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "not-found": {
+              "type": "boolean"
+            },
+            "payload": {
+              "$ref": "#/definitions/Payload"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "Entity",
+            "payload",
+            "not-found"
+          ]
         },
-        "ReleaseContainerAddresses": {
+        "PayloadResults": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/PayloadResult"
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
         },
-        "Remove": {
+        "SetStatusArg": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
+            "Entity": {
+              "$ref": "#/definitions/Entity"
             },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
+            "status": {
+              "type": "string"
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "Entity",
+            "status"
+          ]
         },
-        "Series": {
+        "SetStatusArgs": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/StringResults"
+            "args": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/SetStatusArg"
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "args"
+          ]
         },
-        "SetInstanceInfo": {
+        "TrackArgs": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/InstancesInfo"
-            },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
+            "payloads": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Payload"
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "payloads"
+          ]
+        }
+      }
+    }
+  },
+  {
+    "Name": "Pinger",
+    "Version": 1,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "Ping": {
+          "type": "object"
         },
-        "SetInstanceStatus": {
+        "Stop": {
+          "type": "object"
+        }
+      }
+    }
+  },
+  {
+    "Name": "Provisioner",
+    "Version": 3,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "APIAddresses": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/SetStatus"
-            },
             "Result": {
-              "$ref": "#/definitions/ErrorResults"
+              "$ref": "#/definitions/StringsResult"
             }
           }
         },
-        "SetPasswords": {
+        "APIHostPorts": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/EntityPasswords"
-            },
             "Result": {
-              "$ref": "#/definitions/ErrorResults"
+              "$ref": "#/definitions/APIHostPortsResult"
             }
           }
         },
-        "SetStatus": {
+        "CACert": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/SetStatus"
-            },
             "Result": {
-              "$ref": "#/definitions/ErrorResults"
+              "$ref": "#/definitions/BytesResult"
             }
           }
         },
-        "SetSupportedContainers": {
+        "Constraints": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/MachineContainersParams"
+              "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/ErrorResults"
+              "$ref": "#/definitions/ConstraintsResults"
             }
           }
         },
-        "StateAddresses": {
+        "ContainerConfig": {
           "type": "object",
           "properties": {
             "Result": {
-              "$ref": "#/definitions/StringsResult"
+              "$ref": "#/definitions/ContainerConfig"
             }
           }
         },
-        "Status": {
+        "ContainerManagerConfig": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/Entities"
+              "$ref": "#/definitions/ContainerManagerConfigParams"
             },
             "Result": {
-              "$ref": "#/definitions/StatusResults"
+              "$ref": "#/definitions/ContainerManagerConfig"
             }
           }
         },
-        "Tools": {
+        "ControllerConfig": {
+          "type": "object",
+          "properties": {
+            "Result": {
+              "$ref": "#/definitions/ControllerConfigResult"
+            }
+          }
+        },
+        "DistributionGroup": {
           "type": "object",
           "properties": {
             "Params": {
               "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/ToolsResults"
+              "$ref": "#/definitions/DistributionGroupResults"
             }
           }
         },
-        "UpdateStatus": {
+        "EnsureDead": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/SetStatus"
+              "$ref": "#/definitions/Entities"
             },
             "Result": {
               "$ref": "#/definitions/ErrorResults"
             }
           }
         },
-        "WatchAPIHostPorts": {
+        "FindTools": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/FindToolsParams"
+            },
             "Result": {
-              "$ref": "#/definitions/NotifyWatchResult"
+              "$ref": "#/definitions/FindToolsResult"
             }
           }
         },
-        "WatchAllContainers": {
+        "GetContainerInterfaceInfo": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/WatchContainers"
+              "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/StringsWatchResults"
+              "$ref": "#/definitions/MachineNetworkConfigResults"
             }
           }
         },
-        "WatchContainers": {
+        "HostChangesForContainers": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/WatchContainers"
+              "$ref": "#/definitions/Entities"
             },
             "Result": {
-              "$ref": "#/definitions/StringsWatchResults"
+              "$ref": "#/definitions/HostNetworkChangeResults"
             }
           }
         },
-        "WatchForModelConfigChanges": {
+        "InstanceId": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
             "Result": {
-              "$ref": "#/definitions/NotifyWatchResult"
+              "$ref": "#/definitions/StringResults"
             }
           }
         },
-        "WatchMachineErrorRetry": {
+        "InstanceStatus": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
             "Result": {
-              "$ref": "#/definitions/NotifyWatchResult"
+              "$ref": "#/definitions/StatusResults"
             }
           }
         },
-        "WatchModelMachines": {
+        "Life": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
             "Result": {
-              "$ref": "#/definitions/StringsWatchResult"
+              "$ref": "#/definitions/LifeResults"
             }
           }
-        }
-      },
-      "definitions": {
-        "APIHostPortsResult": {
+        },
+        "MachinesWithTransientErrors": {
           "type": "object",
           "properties": {
-            "servers": {
-              "type": "array",
-              "items": {
-                "type": "array",
-                "items": {
-                  "$ref": "#/definitions/HostPort"
-                }
-              }
+            "Result": {
+              "$ref": "#/definitions/StatusResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "servers"
-          ]
+          }
         },
-        "Address": {
+        "MarkMachinesForRemoval": {
           "type": "object",
           "properties": {
-            "scope": {
-              "type": "string"
+            "Params": {
+              "$ref": "#/definitions/Entities"
             },
-            "space-name": {
-              "type": "string"
+            "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"
             },
-            "type": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/MachineNetworkConfigResults"
+            }
+          }
+        },
+        "ProvisioningInfo": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
             },
-            "value": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/ProvisioningInfoResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "value",
-            "type",
-            "scope"
-          ]
+          }
         },
-        "Binary": {
+        "ReleaseContainerAddresses": {
           "type": "object",
           "properties": {
-            "Arch": {
-              "type": "string"
+            "Params": {
+              "$ref": "#/definitions/Entities"
             },
-            "Number": {
-              "$ref": "#/definitions/Number"
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
+            }
+          }
+        },
+        "Remove": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
             },
-            "Series": {
-              "type": "string"
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "Number",
-            "Series",
-            "Arch"
-          ]
+          }
         },
-        "BytesResult": {
+        "Series": {
           "type": "object",
           "properties": {
-            "result": {
-              "type": "array",
-              "items": {
-                "type": "integer"
-              }
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/StringResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "result"
-          ]
+          }
         },
-        "CloudImageMetadata": {
+        "SetHostMachineNetworkConfig": {
           "type": "object",
           "properties": {
-            "arch": {
+            "Params": {
+              "$ref": "#/definitions/SetMachineNetworkConfig"
+            }
+          }
+        },
+        "SetInstanceInfo": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/InstancesInfo"
+            },
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
+            }
+          }
+        },
+        "SetInstanceStatus": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/SetStatus"
+            },
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
+            }
+          }
+        },
+        "SetObservedNetworkConfig": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/SetMachineNetworkConfig"
+            }
+          }
+        },
+        "SetPasswords": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/EntityPasswords"
+            },
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
+            }
+          }
+        },
+        "SetStatus": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/SetStatus"
+            },
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
+            }
+          }
+        },
+        "SetSupportedContainers": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/MachineContainersParams"
+            },
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
+            }
+          }
+        },
+        "StateAddresses": {
+          "type": "object",
+          "properties": {
+            "Result": {
+              "$ref": "#/definitions/StringsResult"
+            }
+          }
+        },
+        "Status": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/StatusResults"
+            }
+          }
+        },
+        "Tools": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/ToolsResults"
+            }
+          }
+        },
+        "UpdateStatus": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/SetStatus"
+            },
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
+            }
+          }
+        },
+        "WatchAPIHostPorts": {
+          "type": "object",
+          "properties": {
+            "Result": {
+              "$ref": "#/definitions/NotifyWatchResult"
+            }
+          }
+        },
+        "WatchAllContainers": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/WatchContainers"
+            },
+            "Result": {
+              "$ref": "#/definitions/StringsWatchResults"
+            }
+          }
+        },
+        "WatchContainers": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/WatchContainers"
+            },
+            "Result": {
+              "$ref": "#/definitions/StringsWatchResults"
+            }
+          }
+        },
+        "WatchForModelConfigChanges": {
+          "type": "object",
+          "properties": {
+            "Result": {
+              "$ref": "#/definitions/NotifyWatchResult"
+            }
+          }
+        },
+        "WatchMachineErrorRetry": {
+          "type": "object",
+          "properties": {
+            "Result": {
+              "$ref": "#/definitions/NotifyWatchResult"
+            }
+          }
+        },
+        "WatchModelMachines": {
+          "type": "object",
+          "properties": {
+            "Result": {
+              "$ref": "#/definitions/StringsWatchResult"
+            }
+          }
+        }
+      },
+      "definitions": {
+        "APIHostPortsResult": {
+          "type": "object",
+          "properties": {
+            "servers": {
+              "type": "array",
+              "items": {
+                "type": "array",
+                "items": {
+                  "$ref": "#/definitions/HostPort"
+                }
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "servers"
+          ]
+        },
+        "Address": {
+          "type": "object",
+          "properties": {
+            "scope": {
+              "type": "string"
+            },
+            "space-name": {
+              "type": "string"
+            },
+            "type": {
+              "type": "string"
+            },
+            "value": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "value",
+            "type",
+            "scope"
+          ]
+        },
+        "Binary": {
+          "type": "object",
+          "properties": {
+            "Arch": {
+              "type": "string"
+            },
+            "Number": {
+              "$ref": "#/definitions/Number"
+            },
+            "Series": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "Number",
+            "Series",
+            "Arch"
+          ]
+        },
+        "BytesResult": {
+          "type": "object",
+          "properties": {
+            "result": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "result"
+          ]
+        },
+        "CloudImageMetadata": {
+          "type": "object",
+          "properties": {
+            "arch": {
+              "type": "string"
+            },
+            "image-id": {
+              "type": "string"
+            },
+            "priority": {
+              "type": "integer"
+            },
+            "region": {
+              "type": "string"
+            },
+            "root-storage-size": {
+              "type": "integer"
+            },
+            "root-storage-type": {
+              "type": "string"
+            },
+            "series": {
+              "type": "string"
+            },
+            "source": {
+              "type": "string"
+            },
+            "stream": {
+              "type": "string"
+            },
+            "version": {
+              "type": "string"
+            },
+            "virt-type": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "image-id",
+            "region",
+            "version",
+            "series",
+            "arch",
+            "source",
+            "priority"
+          ]
+        },
+        "ConstraintsResult": {
+          "type": "object",
+          "properties": {
+            "constraints": {
+              "$ref": "#/definitions/Value"
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "constraints"
+          ]
+        },
+        "ConstraintsResults": {
+          "type": "object",
+          "properties": {
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ConstraintsResult"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
+        },
+        "ContainerConfig": {
+          "type": "object",
+          "properties": {
+            "UpdateBehavior": {
+              "$ref": "#/definitions/UpdateBehavior"
+            },
+            "apt-mirror": {
+              "type": "string"
+            },
+            "apt-proxy": {
+              "$ref": "#/definitions/Settings"
+            },
+            "authorized-keys": {
+              "type": "string"
+            },
+            "provider-type": {
+              "type": "string"
+            },
+            "proxy": {
+              "$ref": "#/definitions/Settings"
+            },
+            "ssl-hostname-verification": {
+              "type": "boolean"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "provider-type",
+            "authorized-keys",
+            "ssl-hostname-verification",
+            "proxy",
+            "apt-proxy",
+            "apt-mirror",
+            "UpdateBehavior"
+          ]
+        },
+        "ContainerManagerConfig": {
+          "type": "object",
+          "properties": {
+            "config": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "string"
+                }
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "config"
+          ]
+        },
+        "ContainerManagerConfigParams": {
+          "type": "object",
+          "properties": {
+            "type": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "type"
+          ]
+        },
+        "ControllerConfigResult": {
+          "type": "object",
+          "properties": {
+            "config": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "config"
+          ]
+        },
+        "DeviceBridgeInfo": {
+          "type": "object",
+          "properties": {
+            "bridge-name": {
+              "type": "string"
+            },
+            "host-device-name": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "host-device-name",
+            "bridge-name"
+          ]
+        },
+        "DistributionGroupResult": {
+          "type": "object",
+          "properties": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "result": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "result"
+          ]
+        },
+        "DistributionGroupResults": {
+          "type": "object",
+          "properties": {
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/DistributionGroupResult"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
+        },
+        "Entities": {
+          "type": "object",
+          "properties": {
+            "entities": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Entity"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "entities"
+          ]
+        },
+        "Entity": {
+          "type": "object",
+          "properties": {
+            "tag": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "tag"
+          ]
+        },
+        "EntityPassword": {
+          "type": "object",
+          "properties": {
+            "password": {
+              "type": "string"
+            },
+            "tag": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "tag",
+            "password"
+          ]
+        },
+        "EntityPasswords": {
+          "type": "object",
+          "properties": {
+            "changes": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/EntityPassword"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "changes"
+          ]
+        },
+        "EntityStatusArgs": {
+          "type": "object",
+          "properties": {
+            "data": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
+            },
+            "info": {
+              "type": "string"
+            },
+            "status": {
+              "type": "string"
+            },
+            "tag": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "tag",
+            "status",
+            "info",
+            "data"
+          ]
+        },
+        "Error": {
+          "type": "object",
+          "properties": {
+            "code": {
+              "type": "string"
+            },
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
+            },
+            "message": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "message",
+            "code"
+          ]
+        },
+        "ErrorInfo": {
+          "type": "object",
+          "properties": {
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
+            },
+            "macaroon-path": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false
+        },
+        "ErrorResult": {
+          "type": "object",
+          "properties": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            }
+          },
+          "additionalProperties": false
+        },
+        "ErrorResults": {
+          "type": "object",
+          "properties": {
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ErrorResult"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
+        },
+        "FindToolsParams": {
+          "type": "object",
+          "properties": {
+            "arch": {
+              "type": "string"
+            },
+            "major": {
+              "type": "integer"
+            },
+            "minor": {
+              "type": "integer"
+            },
+            "number": {
+              "$ref": "#/definitions/Number"
+            },
+            "series": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "number",
+            "major",
+            "minor",
+            "arch",
+            "series"
+          ]
+        },
+        "FindToolsResult": {
+          "type": "object",
+          "properties": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "list": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Tools"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "list"
+          ]
+        },
+        "HardwareCharacteristics": {
+          "type": "object",
+          "properties": {
+            "arch": {
+              "type": "string"
+            },
+            "availability-zone": {
+              "type": "string"
+            },
+            "cpu-cores": {
+              "type": "integer"
+            },
+            "cpu-power": {
+              "type": "integer"
+            },
+            "mem": {
+              "type": "integer"
+            },
+            "root-disk": {
+              "type": "integer"
+            },
+            "tags": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            }
+          },
+          "additionalProperties": false
+        },
+        "HostNetworkChange": {
+          "type": "object",
+          "properties": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "new-bridges": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/DeviceBridgeInfo"
+              }
+            },
+            "reconfigure-delay": {
+              "type": "integer"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "new-bridges",
+            "reconfigure-delay"
+          ]
+        },
+        "HostNetworkChangeResults": {
+          "type": "object",
+          "properties": {
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/HostNetworkChange"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
+        },
+        "HostPort": {
+          "type": "object",
+          "properties": {
+            "Address": {
+              "$ref": "#/definitions/Address"
+            },
+            "port": {
+              "type": "integer"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "Address",
+            "port"
+          ]
+        },
+        "InstanceInfo": {
+          "type": "object",
+          "properties": {
+            "characteristics": {
+              "$ref": "#/definitions/HardwareCharacteristics"
+            },
+            "instance-id": {
+              "type": "string"
+            },
+            "network-config": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/NetworkConfig"
+              }
+            },
+            "nonce": {
+              "type": "string"
+            },
+            "tag": {
+              "type": "string"
+            },
+            "volume-attachments": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/VolumeAttachmentInfo"
+                }
+              }
+            },
+            "volumes": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Volume"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "tag",
+            "instance-id",
+            "nonce",
+            "characteristics",
+            "volumes",
+            "volume-attachments",
+            "network-config"
+          ]
+        },
+        "InstancesInfo": {
+          "type": "object",
+          "properties": {
+            "machines": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/InstanceInfo"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "machines"
+          ]
+        },
+        "LifeResult": {
+          "type": "object",
+          "properties": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "life": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "life"
+          ]
+        },
+        "LifeResults": {
+          "type": "object",
+          "properties": {
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/LifeResult"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
+        },
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "MachineContainers": {
+          "type": "object",
+          "properties": {
+            "container-types": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "machine-tag": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "machine-tag",
+            "container-types"
+          ]
+        },
+        "MachineContainersParams": {
+          "type": "object",
+          "properties": {
+            "params": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/MachineContainers"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "params"
+          ]
+        },
+        "MachineNetworkConfigResult": {
+          "type": "object",
+          "properties": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "info": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/NetworkConfig"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "info"
+          ]
+        },
+        "MachineNetworkConfigResults": {
+          "type": "object",
+          "properties": {
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/MachineNetworkConfigResult"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
+        },
+        "ModelConfigResult": {
+          "type": "object",
+          "properties": {
+            "config": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "config"
+          ]
+        },
+        "NetworkConfig": {
+          "type": "object",
+          "properties": {
+            "address": {
+              "type": "string"
+            },
+            "cidr": {
+              "type": "string"
+            },
+            "config-type": {
+              "type": "string"
+            },
+            "device-index": {
+              "type": "integer"
+            },
+            "disabled": {
+              "type": "boolean"
+            },
+            "dns-search-domains": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "dns-servers": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "gateway-address": {
               "type": "string"
             },
-            "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"
+            },
+            "routes": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/NetworkRoute"
+              }
+            },
+            "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": {
+        "NetworkRoute": {
           "type": "object",
           "properties": {
-            "constraints": {
-              "$ref": "#/definitions/Value"
+            "destination-cidr": {
+              "type": "string"
             },
-            "error": {
-              "$ref": "#/definitions/Error"
+            "gateway-ip": {
+              "type": "string"
+            },
+            "metric": {
+              "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "constraints"
+            "destination-cidr",
+            "gateway-ip",
+            "metric"
           ]
         },
-        "ConstraintsResults": {
+        "NotifyWatchResult": {
           "type": "object",
           "properties": {
-            "results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ConstraintsResult"
-              }
+            "NotifyWatcherId": {
+              "type": "string"
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "results"
+            "NotifyWatcherId"
           ]
         },
-        "ContainerConfig": {
+        "Number": {
           "type": "object",
           "properties": {
-            "UpdateBehavior": {
-              "$ref": "#/definitions/UpdateBehavior"
+            "Build": {
+              "type": "integer"
             },
-            "apt-mirror": {
-              "type": "string"
+            "Major": {
+              "type": "integer"
             },
-            "apt-proxy": {
-              "$ref": "#/definitions/Settings"
+            "Minor": {
+              "type": "integer"
             },
-            "authorized-keys": {
-              "type": "string"
+            "Patch": {
+              "type": "integer"
             },
-            "provider-type": {
+            "Tag": {
               "type": "string"
-            },
-            "proxy": {
-              "$ref": "#/definitions/Settings"
-            },
-            "ssl-hostname-verification": {
-              "type": "boolean"
             }
           },
           "additionalProperties": false,
           "required": [
-            "provider-type",
-            "authorized-keys",
-            "ssl-hostname-verification",
-            "proxy",
-            "apt-proxy",
-            "apt-mirror",
-            "UpdateBehavior"
+            "Major",
+            "Minor",
+            "Tag",
+            "Patch",
+            "Build"
           ]
         },
-        "ContainerManagerConfig": {
+        "ProvisioningInfo": {
           "type": "object",
           "properties": {
-            "config": {
+            "constraints": {
+              "$ref": "#/definitions/Value"
+            },
+            "controller-config": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
+            },
+            "endpoint-bindings": {
               "type": "object",
               "patternProperties": {
                 ".*": {
                   "type": "string"
                 }
               }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "config"
-          ]
-        },
-        "ContainerManagerConfigParams": {
-          "type": "object",
-          "properties": {
-            "type": {
+            },
+            "image-metadata": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/CloudImageMetadata"
+              }
+            },
+            "jobs": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
+            "placement": {
               "type": "string"
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "type"
-          ]
-        },
-        "ControllerConfigResult": {
-          "type": "object",
-          "properties": {
-            "config": {
+            },
+            "series": {
+              "type": "string"
+            },
+            "subnets-to-zones": {
               "type": "object",
               "patternProperties": {
                 ".*": {
-                  "type": "object",
-                  "additionalProperties": true
+                  "type": "array",
+                  "items": {
+                    "type": "string"
+                  }
+                }
+              }
+            },
+            "tags": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "string"
                 }
               }
+            },
+            "volumes": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/VolumeParams"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "config"
+            "constraints",
+            "series",
+            "placement",
+            "jobs"
           ]
         },
-        "DistributionGroupResult": {
+        "ProvisioningInfoResult": {
           "type": "object",
           "properties": {
             "error": {
               "$ref": "#/definitions/Error"
             },
             "result": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+              "$ref": "#/definitions/ProvisioningInfo"
             }
           },
           "additionalProperties": false,
             "result"
           ]
         },
-        "DistributionGroupResults": {
+        "ProvisioningInfoResults": {
           "type": "object",
           "properties": {
             "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/DistributionGroupResult"
+                "$ref": "#/definitions/ProvisioningInfoResult"
               }
             }
           },
             "results"
           ]
         },
-        "Entities": {
+        "SetMachineNetworkConfig": {
           "type": "object",
           "properties": {
-            "entities": {
+            "config": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Entity"
+                "$ref": "#/definitions/NetworkConfig"
               }
+            },
+            "tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "entities"
+            "tag",
+            "config"
           ]
         },
-        "Entity": {
+        "SetStatus": {
           "type": "object",
           "properties": {
-            "tag": {
-              "type": "string"
+            "entities": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/EntityStatusArgs"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "tag"
+            "entities"
           ]
         },
-        "EntityPassword": {
+        "Settings": {
           "type": "object",
           "properties": {
-            "password": {
+            "Ftp": {
               "type": "string"
             },
-            "tag": {
+            "Http": {
+              "type": "string"
+            },
+            "Https": {
+              "type": "string"
+            },
+            "NoProxy": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "tag",
-            "password"
-          ]
-        },
-        "EntityPasswords": {
-          "type": "object",
-          "properties": {
-            "changes": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/EntityPassword"
-              }
-            }
-          },
-          "additionalProperties": false,
-          "required": [
-            "changes"
+            "Http",
+            "Https",
+            "Ftp",
+            "NoProxy"
           ]
         },
-        "EntityStatusArgs": {
+        "StatusResult": {
           "type": "object",
           "properties": {
             "data": {
                 }
               }
             },
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "id": {
+              "type": "string"
+            },
             "info": {
               "type": "string"
             },
-            "status": {
+            "life": {
               "type": "string"
             },
-            "tag": {
+            "since": {
+              "type": "string",
+              "format": "date-time"
+            },
+            "status": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "tag",
+            "id",
+            "life",
             "status",
             "info",
-            "data"
+            "data",
+            "since"
           ]
         },
-        "Error": {
+        "StatusResults": {
           "type": "object",
           "properties": {
-            "code": {
-              "type": "string"
-            },
-            "info": {
-              "$ref": "#/definitions/ErrorInfo"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/StatusResult"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
+        },
+        "StringResult": {
+          "type": "object",
+          "properties": {
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "message": {
+            "result": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "message",
-            "code"
+            "result"
           ]
         },
-        "ErrorInfo": {
+        "StringResults": {
           "type": "object",
           "properties": {
-            "macaroon": {
-              "$ref": "#/definitions/Macaroon"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/StringResult"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
+        },
+        "StringsResult": {
+          "type": "object",
+          "properties": {
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "macaroon-path": {
-              "type": "string"
+            "result": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             }
           },
           "additionalProperties": false
         },
-        "ErrorResult": {
+        "StringsWatchResult": {
           "type": "object",
           "properties": {
+            "changes": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
+            },
             "error": {
               "$ref": "#/definitions/Error"
+            },
+            "watcher-id": {
+              "type": "string"
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "watcher-id"
+          ]
         },
-        "ErrorResults": {
+        "StringsWatchResults": {
           "type": "object",
           "properties": {
             "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ErrorResult"
+                "$ref": "#/definitions/StringsWatchResult"
               }
             }
           },
             "results"
           ]
         },
-        "FindToolsParams": {
+        "Tools": {
           "type": "object",
           "properties": {
-            "arch": {
+            "sha256": {
               "type": "string"
             },
-            "major": {
-              "type": "integer"
-            },
-            "minor": {
+            "size": {
               "type": "integer"
             },
-            "number": {
-              "$ref": "#/definitions/Number"
-            },
-            "series": {
+            "url": {
               "type": "string"
+            },
+            "version": {
+              "$ref": "#/definitions/Binary"
             }
           },
           "additionalProperties": false,
           "required": [
-            "number",
-            "major",
-            "minor",
-            "arch",
-            "series"
+            "version",
+            "url",
+            "size"
           ]
         },
-        "FindToolsResult": {
+        "ToolsResult": {
           "type": "object",
           "properties": {
+            "disable-ssl-hostname-verification": {
+              "type": "boolean"
+            },
             "error": {
               "$ref": "#/definitions/Error"
             },
-            "list": {
+            "tools": {
               "type": "array",
               "items": {
                 "$ref": "#/definitions/Tools"
           },
           "additionalProperties": false,
           "required": [
-            "list"
+            "tools",
+            "disable-ssl-hostname-verification"
           ]
         },
-        "HardwareCharacteristics": {
+        "ToolsResults": {
+          "type": "object",
+          "properties": {
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ToolsResult"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
+        },
+        "UpdateBehavior": {
+          "type": "object",
+          "properties": {
+            "enable-os-refresh-update": {
+              "type": "boolean"
+            },
+            "enable-os-upgrade": {
+              "type": "boolean"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "enable-os-refresh-update",
+            "enable-os-upgrade"
+          ]
+        },
+        "Value": {
           "type": "object",
           "properties": {
             "arch": {
               "type": "string"
             },
-            "availability-zone": {
+            "container": {
               "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
         },
-        "HostPort": {
+        "Volume": {
           "type": "object",
           "properties": {
-            "Address": {
-              "$ref": "#/definitions/Address"
+            "info": {
+              "$ref": "#/definitions/VolumeInfo"
             },
-            "port": {
-              "type": "integer"
+            "volume-tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Address",
-            "port"
+            "volume-tag",
+            "info"
           ]
         },
-        "InstanceInfo": {
+        "VolumeAttachmentInfo": {
           "type": "object",
           "properties": {
-            "characteristics": {
-              "$ref": "#/definitions/HardwareCharacteristics"
-            },
-            "instance-id": {
+            "bus-address": {
               "type": "string"
             },
-            "network-config": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/NetworkConfig"
-              }
-            },
-            "nonce": {
+            "device-link": {
               "type": "string"
             },
-            "tag": {
+            "device-name": {
               "type": "string"
             },
-            "volume-attachments": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "$ref": "#/definitions/VolumeAttachmentInfo"
-                }
-              }
-            },
-            "volumes": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/Volume"
-              }
+            "read-only": {
+              "type": "boolean"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "tag",
-            "instance-id",
-            "nonce",
-            "characteristics",
-            "volumes",
-            "volume-attachments",
-            "network-config"
-          ]
+          "additionalProperties": false
         },
-        "InstancesInfo": {
+        "VolumeAttachmentParams": {
           "type": "object",
-          "properties": {
-            "machines": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/InstanceInfo"
-              }
+          "properties": {
+            "instance-id": {
+              "type": "string"
+            },
+            "machine-tag": {
+              "type": "string"
+            },
+            "provider": {
+              "type": "string"
+            },
+            "read-only": {
+              "type": "boolean"
+            },
+            "volume-id": {
+              "type": "string"
+            },
+            "volume-tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "machines"
+            "volume-tag",
+            "machine-tag",
+            "provider"
           ]
         },
-        "LifeResult": {
+        "VolumeInfo": {
           "type": "object",
           "properties": {
-            "error": {
-              "$ref": "#/definitions/Error"
+            "hardware-id": {
+              "type": "string"
             },
-            "life": {
+            "persistent": {
+              "type": "boolean"
+            },
+            "size": {
+              "type": "integer"
+            },
+            "volume-id": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "life"
+            "volume-id",
+            "size",
+            "persistent"
           ]
         },
-        "LifeResults": {
+        "VolumeParams": {
           "type": "object",
           "properties": {
-            "results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/LifeResult"
+            "attachment": {
+              "$ref": "#/definitions/VolumeAttachmentParams"
+            },
+            "attributes": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
+            },
+            "provider": {
+              "type": "string"
+            },
+            "size": {
+              "type": "integer"
+            },
+            "tags": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "string"
+                }
               }
+            },
+            "volume-tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "results"
+            "volume-tag",
+            "size",
+            "provider"
           ]
         },
-        "Macaroon": {
-          "type": "object",
-          "additionalProperties": false
-        },
-        "MachineContainers": {
+        "WatchContainer": {
           "type": "object",
           "properties": {
-            "container-types": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
+            "container-type": {
+              "type": "string"
             },
             "machine-tag": {
               "type": "string"
           "additionalProperties": false,
           "required": [
             "machine-tag",
-            "container-types"
+            "container-type"
           ]
         },
-        "MachineContainersParams": {
+        "WatchContainers": {
           "type": "object",
           "properties": {
             "params": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/MachineContainers"
+                "$ref": "#/definitions/WatchContainer"
               }
             }
           },
           "required": [
             "params"
           ]
-        },
-        "MachineNetworkConfigResult": {
+        }
+      }
+    }
+  },
+  {
+    "Name": "ProxyUpdater",
+    "Version": 1,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "ProxyConfig": {
           "type": "object",
           "properties": {
-            "error": {
-              "$ref": "#/definitions/Error"
+            "Params": {
+              "$ref": "#/definitions/Entities"
             },
-            "info": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/NetworkConfig"
-              }
+            "Result": {
+              "$ref": "#/definitions/ProxyConfigResults"
             }
-          },
-          "additionalProperties": false,
-          "required": [
-            "info"
-          ]
+          }
         },
-        "MachineNetworkConfigResults": {
+        "WatchForProxyConfigAndAPIHostPortChanges": {
           "type": "object",
           "properties": {
-            "results": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/NotifyWatchResults"
+            }
+          }
+        }
+      },
+      "definitions": {
+        "Entities": {
+          "type": "object",
+          "properties": {
+            "entities": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/MachineNetworkConfigResult"
+                "$ref": "#/definitions/Entity"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "results"
+            "entities"
           ]
         },
-        "ModelConfigResult": {
+        "Entity": {
           "type": "object",
           "properties": {
-            "config": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
-              }
+            "tag": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "config"
+            "tag"
           ]
         },
-        "NetworkConfig": {
+        "Error": {
           "type": "object",
           "properties": {
-            "address": {
-              "type": "string"
-            },
-            "cidr": {
-              "type": "string"
-            },
-            "config-type": {
-              "type": "string"
-            },
-            "device-index": {
-              "type": "integer"
-            },
-            "disabled": {
-              "type": "boolean"
-            },
-            "dns-search-domains": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "dns-servers": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "gateway-address": {
-              "type": "string"
-            },
-            "interface-name": {
-              "type": "string"
-            },
-            "interface-type": {
-              "type": "string"
-            },
-            "mac-address": {
-              "type": "string"
-            },
-            "mtu": {
-              "type": "integer"
-            },
-            "no-auto-start": {
-              "type": "boolean"
-            },
-            "parent-interface-name": {
-              "type": "string"
-            },
-            "provider-address-id": {
-              "type": "string"
-            },
-            "provider-id": {
-              "type": "string"
-            },
-            "provider-space-id": {
+            "code": {
               "type": "string"
             },
-            "provider-subnet-id": {
-              "type": "string"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "provider-vlan-id": {
+            "message": {
               "type": "string"
-            },
-            "vlan-tag": {
-              "type": "integer"
             }
           },
           "additionalProperties": false,
           "required": [
-            "device-index",
-            "mac-address",
-            "cidr",
-            "mtu",
-            "provider-id",
-            "provider-subnet-id",
-            "provider-space-id",
-            "provider-address-id",
-            "provider-vlan-id",
-            "vlan-tag",
-            "interface-name",
-            "parent-interface-name",
-            "interface-type",
-            "disabled"
+            "message",
+            "code"
           ]
         },
+        "ErrorInfo": {
+          "type": "object",
+          "properties": {
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
+            },
+            "macaroon-path": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false
+        },
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
         "NotifyWatchResult": {
           "type": "object",
           "properties": {
             "NotifyWatcherId"
           ]
         },
-        "Number": {
+        "NotifyWatchResults": {
           "type": "object",
           "properties": {
-            "Build": {
-              "type": "integer"
-            },
-            "Major": {
-              "type": "integer"
-            },
-            "Minor": {
-              "type": "integer"
-            },
-            "Patch": {
-              "type": "integer"
-            },
-            "Tag": {
-              "type": "string"
+            "results": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/NotifyWatchResult"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "Major",
-            "Minor",
-            "Tag",
-            "Patch",
-            "Build"
+            "results"
           ]
         },
-        "ProvisioningInfo": {
+        "ProxyConfig": {
           "type": "object",
           "properties": {
-            "constraints": {
-              "$ref": "#/definitions/Value"
-            },
-            "controller-config": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
-              }
-            },
-            "endpoint-bindings": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "string"
-                }
-              }
-            },
-            "image-metadata": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/CloudImageMetadata"
-              }
-            },
-            "jobs": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "placement": {
+            "ftp": {
               "type": "string"
             },
-            "series": {
+            "http": {
               "type": "string"
             },
-            "subnets-to-zones": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "array",
-                  "items": {
-                    "type": "string"
-                  }
-                }
-              }
-            },
-            "tags": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "string"
-                }
-              }
+            "https": {
+              "type": "string"
             },
-            "volumes": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/VolumeParams"
-              }
+            "no-proxy": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "constraints",
-            "series",
-            "placement",
-            "jobs"
+            "http",
+            "https",
+            "ftp",
+            "no-proxy"
           ]
         },
-        "ProvisioningInfoResult": {
+        "ProxyConfigResult": {
           "type": "object",
           "properties": {
+            "apt-proxy-settings": {
+              "$ref": "#/definitions/ProxyConfig"
+            },
             "error": {
               "$ref": "#/definitions/Error"
             },
-            "result": {
-              "$ref": "#/definitions/ProvisioningInfo"
+            "proxy-settings": {
+              "$ref": "#/definitions/ProxyConfig"
             }
           },
           "additionalProperties": false,
           "required": [
-            "result"
+            "proxy-settings",
+            "apt-proxy-settings"
           ]
         },
-        "ProvisioningInfoResults": {
+        "ProxyConfigResults": {
           "type": "object",
           "properties": {
             "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ProvisioningInfoResult"
+                "$ref": "#/definitions/ProxyConfigResult"
               }
             }
           },
           "required": [
             "results"
           ]
+        }
+      }
+    }
+  },
+  {
+    "Name": "Reboot",
+    "Version": 2,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "ClearReboot": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
+            }
+          }
         },
-        "SetStatus": {
+        "GetRebootAction": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/RebootActionResults"
+            }
+          }
+        },
+        "RequestReboot": {
+          "type": "object",
+          "properties": {
+            "Params": {
+              "$ref": "#/definitions/Entities"
+            },
+            "Result": {
+              "$ref": "#/definitions/ErrorResults"
+            }
+          }
+        },
+        "WatchForRebootEvent": {
+          "type": "object",
+          "properties": {
+            "Result": {
+              "$ref": "#/definitions/NotifyWatchResult"
+            }
+          }
+        }
+      },
+      "definitions": {
+        "Entities": {
           "type": "object",
           "properties": {
             "entities": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/EntityStatusArgs"
+                "$ref": "#/definitions/Entity"
               }
             }
           },
             "entities"
           ]
         },
-        "Settings": {
+        "Entity": {
           "type": "object",
           "properties": {
-            "Ftp": {
-              "type": "string"
-            },
-            "Http": {
-              "type": "string"
-            },
-            "Https": {
-              "type": "string"
-            },
-            "NoProxy": {
+            "tag": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "Http",
-            "Https",
-            "Ftp",
-            "NoProxy"
+            "tag"
           ]
         },
-        "StatusResult": {
+        "Error": {
           "type": "object",
           "properties": {
-            "data": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "object",
-                  "additionalProperties": true
-                }
-              }
-            },
-            "error": {
-              "$ref": "#/definitions/Error"
-            },
-            "id": {
+            "code": {
               "type": "string"
             },
             "info": {
-              "type": "string"
-            },
-            "life": {
-              "type": "string"
-            },
-            "since": {
-              "type": "string",
-              "format": "date-time"
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "status": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "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": {
               "$ref": "#/definitions/Error"
-            },
-            "result": {
-              "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "result"
-          ]
+          "additionalProperties": false
         },
-        "StringResults": {
+        "ErrorResults": {
           "type": "object",
           "properties": {
             "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/StringResult"
+                "$ref": "#/definitions/ErrorResult"
               }
             }
           },
             "results"
           ]
         },
-        "StringsResult": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "NotifyWatchResult": {
           "type": "object",
           "properties": {
+            "NotifyWatcherId": {
+              "type": "string"
+            },
             "error": {
               "$ref": "#/definitions/Error"
-            },
-            "result": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "NotifyWatcherId"
+          ]
         },
-        "StringsWatchResult": {
+        "RebootActionResult": {
           "type": "object",
           "properties": {
-            "changes": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
             "error": {
               "$ref": "#/definitions/Error"
             },
-            "watcher-id": {
+            "result": {
               "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "watcher-id"
-          ]
+          "additionalProperties": false
         },
-        "StringsWatchResults": {
+        "RebootActionResults": {
           "type": "object",
           "properties": {
             "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/StringsWatchResult"
+                "$ref": "#/definitions/RebootActionResult"
               }
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "results"
-          ]
+          "additionalProperties": false
+        }
+      }
+    }
+  },
+  {
+    "Name": "RelationUnitsWatcher",
+    "Version": 1,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "Next": {
+          "type": "object",
+          "properties": {
+            "Result": {
+              "$ref": "#/definitions/RelationUnitsWatchResult"
+            }
+          }
         },
-        "Tools": {
+        "Stop": {
+          "type": "object"
+        }
+      },
+      "definitions": {
+        "Error": {
           "type": "object",
           "properties": {
-            "sha256": {
+            "code": {
               "type": "string"
             },
-            "size": {
-              "type": "integer"
+            "info": {
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "url": {
+            "message": {
               "type": "string"
-            },
-            "version": {
-              "$ref": "#/definitions/Binary"
             }
           },
           "additionalProperties": false,
           "required": [
-            "version",
-            "url",
-            "size"
+            "message",
+            "code"
           ]
         },
-        "ToolsResult": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "disable-ssl-hostname-verification": {
-              "type": "boolean"
-            },
-            "error": {
-              "$ref": "#/definitions/Error"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "tools": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/Tools"
-              }
+            "macaroon-path": {
+              "type": "string"
             }
           },
-          "additionalProperties": false,
-          "required": [
-            "tools",
-            "disable-ssl-hostname-verification"
-          ]
+          "additionalProperties": false
         },
-        "ToolsResults": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "RelationUnitsChange": {
           "type": "object",
           "properties": {
-            "results": {
+            "changed": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/UnitSettings"
+                }
+              }
+            },
+            "departed": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ToolsResult"
+                "type": "string"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "results"
+            "changed"
           ]
         },
-        "UpdateBehavior": {
+        "RelationUnitsWatchResult": {
           "type": "object",
           "properties": {
-            "enable-os-refresh-update": {
-              "type": "boolean"
+            "changes": {
+              "$ref": "#/definitions/RelationUnitsChange"
             },
-            "enable-os-upgrade": {
-              "type": "boolean"
+            "error": {
+              "$ref": "#/definitions/Error"
+            },
+            "watcher-id": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "enable-os-refresh-update",
-            "enable-os-upgrade"
+            "watcher-id",
+            "changes"
           ]
         },
-        "Value": {
+        "UnitSettings": {
           "type": "object",
           "properties": {
-            "arch": {
-              "type": "string"
-            },
-            "container": {
-              "type": "string"
-            },
-            "cores": {
-              "type": "integer"
-            },
-            "cpu-power": {
-              "type": "integer"
-            },
-            "instance-type": {
-              "type": "string"
-            },
-            "mem": {
-              "type": "integer"
-            },
-            "root-disk": {
+            "version": {
               "type": "integer"
-            },
-            "spaces": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "tags": {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            "virt-type": {
-              "type": "string"
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "version"
+          ]
+        }
+      }
+    }
+  },
+  {
+    "Name": "RemoteApplicationWatcher",
+    "Version": 1,
+    "Schema": {
+      "type": "object",
+      "properties": {
+        "Next": {
+          "type": "object",
+          "properties": {
+            "Result": {
+              "$ref": "#/definitions/RemoteApplicationWatchResult"
+            }
+          }
         },
-        "Volume": {
+        "Stop": {
+          "type": "object"
+        }
+      },
+      "definitions": {
+        "Error": {
           "type": "object",
           "properties": {
+            "code": {
+              "type": "string"
+            },
             "info": {
-              "$ref": "#/definitions/VolumeInfo"
+              "$ref": "#/definitions/ErrorInfo"
             },
-            "volume-tag": {
+            "message": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "volume-tag",
-            "info"
+            "message",
+            "code"
           ]
         },
-        "VolumeAttachmentInfo": {
+        "ErrorInfo": {
           "type": "object",
           "properties": {
-            "bus-address": {
-              "type": "string"
-            },
-            "device-link": {
-              "type": "string"
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
             },
-            "device-name": {
+            "macaroon-path": {
               "type": "string"
-            },
-            "read-only": {
-              "type": "boolean"
             }
           },
           "additionalProperties": false
         },
-        "VolumeAttachmentParams": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "RemoteApplicationChange": {
           "type": "object",
           "properties": {
-            "instance-id": {
-              "type": "string"
-            },
-            "machine-tag": {
+            "application-tag": {
               "type": "string"
             },
-            "provider": {
+            "life": {
               "type": "string"
             },
-            "read-only": {
-              "type": "boolean"
+            "relations": {
+              "$ref": "#/definitions/RemoteRelationsChange"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "application-tag",
+            "life",
+            "relations"
+          ]
+        },
+        "RemoteApplicationWatchResult": {
+          "type": "object",
+          "properties": {
+            "change": {
+              "$ref": "#/definitions/RemoteApplicationChange"
             },
-            "volume-id": {
-              "type": "string"
+            "error": {
+              "$ref": "#/definitions/Error"
             },
-            "volume-tag": {
+            "id": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "volume-tag",
-            "machine-tag",
-            "provider"
+            "id"
           ]
         },
-        "VolumeInfo": {
+        "RemoteEntityId": {
           "type": "object",
           "properties": {
-            "hardware-id": {
+            "model-uuid": {
               "type": "string"
             },
-            "persistent": {
-              "type": "boolean"
-            },
-            "size": {
-              "type": "integer"
-            },
-            "volume-id": {
+            "token": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "volume-id",
-            "size",
-            "persistent"
+            "model-uuid",
+            "token"
           ]
         },
-        "VolumeParams": {
+        "RemoteRelationChange": {
           "type": "object",
           "properties": {
-            "attachment": {
-              "$ref": "#/definitions/VolumeAttachmentParams"
-            },
-            "attributes": {
+            "changed-units": {
               "type": "object",
               "patternProperties": {
                 ".*": {
-                  "type": "object",
-                  "additionalProperties": true
+                  "$ref": "#/definitions/RemoteRelationUnitChange"
                 }
               }
             },
-            "provider": {
-              "type": "string"
+            "departed-units": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             },
-            "size": {
+            "id": {
               "type": "integer"
             },
-            "tags": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "type": "string"
-                }
-              }
-            },
-            "volume-tag": {
+            "life": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "volume-tag",
-            "size",
-            "provider"
+            "id",
+            "life"
           ]
         },
-        "WatchContainer": {
+        "RemoteRelationUnitChange": {
           "type": "object",
           "properties": {
-            "container-type": {
-              "type": "string"
+            "settings": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
             },
-            "machine-tag": {
-              "type": "string"
+            "unit-id": {
+              "$ref": "#/definitions/RemoteEntityId"
             }
           },
           "additionalProperties": false,
           "required": [
-            "machine-tag",
-            "container-type"
+            "unit-id"
           ]
         },
-        "WatchContainers": {
+        "RemoteRelationsChange": {
           "type": "object",
           "properties": {
-            "params": {
+            "changed": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/WatchContainer"
+                "$ref": "#/definitions/RemoteRelationChange"
+              }
+            },
+            "initial": {
+              "type": "boolean"
+            },
+            "removed": {
+              "type": "array",
+              "items": {
+                "type": "integer"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "params"
+            "initial"
           ]
         }
       }
     }
   },
   {
-    "Name": "ProxyUpdater",
+    "Name": "RemoteRelationsWatcher",
     "Version": 1,
     "Schema": {
       "type": "object",
       "properties": {
-        "ProxyConfig": {
+        "Next": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
             "Result": {
-              "$ref": "#/definitions/ProxyConfigResults"
+              "$ref": "#/definitions/RemoteRelationsWatchResult"
             }
           }
         },
-        "WatchForProxyConfigAndAPIHostPortChanges": {
-          "type": "object",
-          "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
-            },
-            "Result": {
-              "$ref": "#/definitions/NotifyWatchResults"
-            }
-          }
+        "Stop": {
+          "type": "object"
         }
       },
       "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": {
           "type": "object",
           "additionalProperties": false
         },
-        "NotifyWatchResult": {
+        "RemoteEntityId": {
           "type": "object",
           "properties": {
-            "NotifyWatcherId": {
+            "model-uuid": {
               "type": "string"
             },
-            "error": {
-              "$ref": "#/definitions/Error"
+            "token": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "NotifyWatcherId"
+            "model-uuid",
+            "token"
           ]
         },
-        "NotifyWatchResults": {
+        "RemoteRelationChange": {
           "type": "object",
           "properties": {
-            "results": {
+            "changed-units": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "$ref": "#/definitions/RemoteRelationUnitChange"
+                }
+              }
+            },
+            "departed-units": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/NotifyWatchResult"
+                "type": "string"
               }
+            },
+            "id": {
+              "type": "integer"
+            },
+            "life": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "results"
+            "id",
+            "life"
           ]
         },
-        "ProxyConfig": {
+        "RemoteRelationUnitChange": {
           "type": "object",
           "properties": {
-            "ftp": {
-              "type": "string"
-            },
-            "http": {
-              "type": "string"
-            },
-            "https": {
-              "type": "string"
+            "settings": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "object",
+                  "additionalProperties": true
+                }
+              }
             },
-            "no-proxy": {
-              "type": "string"
+            "unit-id": {
+              "$ref": "#/definitions/RemoteEntityId"
             }
           },
           "additionalProperties": false,
           "required": [
-            "http",
-            "https",
-            "ftp",
-            "no-proxy"
+            "unit-id"
           ]
         },
-        "ProxyConfigResult": {
+        "RemoteRelationsChange": {
           "type": "object",
           "properties": {
-            "apt-proxy-settings": {
-              "$ref": "#/definitions/ProxyConfig"
+            "changed": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/RemoteRelationChange"
+              }
             },
-            "error": {
-              "$ref": "#/definitions/Error"
+            "initial": {
+              "type": "boolean"
             },
-            "proxy-settings": {
-              "$ref": "#/definitions/ProxyConfig"
+            "removed": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              }
             }
           },
           "additionalProperties": false,
           "required": [
-            "proxy-settings",
-            "apt-proxy-settings"
+            "initial"
           ]
         },
-        "ProxyConfigResults": {
+        "RemoteRelationsWatchResult": {
           "type": "object",
           "properties": {
-            "results": {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/ProxyConfigResult"
-              }
+            "RemoteRelationsWatcherId": {
+              "type": "string"
+            },
+            "change": {
+              "$ref": "#/definitions/RemoteRelationsChange"
+            },
+            "error": {
+              "$ref": "#/definitions/Error"
             }
           },
           "additionalProperties": false,
           "required": [
-            "results"
+            "RemoteRelationsWatcherId"
           ]
         }
       }
     }
   },
   {
-    "Name": "Reboot",
-    "Version": 2,
+    "Name": "Resources",
+    "Version": 1,
     "Schema": {
       "type": "object",
       "properties": {
-        "ClearReboot": {
+        "AddPendingResources": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/Entities"
+              "$ref": "#/definitions/AddPendingResourcesArgs"
             },
             "Result": {
-              "$ref": "#/definitions/ErrorResults"
+              "$ref": "#/definitions/AddPendingResourcesResult"
             }
           }
         },
-        "GetRebootAction": {
+        "ListResources": {
           "type": "object",
           "properties": {
             "Params": {
-              "$ref": "#/definitions/Entities"
+              "$ref": "#/definitions/ListResourcesArgs"
             },
             "Result": {
-              "$ref": "#/definitions/RebootActionResults"
+              "$ref": "#/definitions/ResourcesResults"
             }
           }
+        }
+      },
+      "definitions": {
+        "AddCharmWithAuthorization": {
+          "type": "object",
+          "properties": {
+            "channel": {
+              "type": "string"
+            },
+            "macaroon": {
+              "$ref": "#/definitions/Macaroon"
+            },
+            "url": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "url",
+            "channel",
+            "macaroon"
+          ]
         },
-        "RequestReboot": {
+        "AddPendingResourcesArgs": {
           "type": "object",
           "properties": {
-            "Params": {
-              "$ref": "#/definitions/Entities"
+            "AddCharmWithAuthorization": {
+              "$ref": "#/definitions/AddCharmWithAuthorization"
             },
-            "Result": {
-              "$ref": "#/definitions/ErrorResults"
+            "Entity": {
+              "$ref": "#/definitions/Entity"
+            },
+            "Resources": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/CharmResource"
+              }
             }
-          }
+          },
+          "additionalProperties": false,
+          "required": [
+            "Entity",
+            "AddCharmWithAuthorization",
+            "Resources"
+          ]
         },
-        "WatchForRebootEvent": {
+        "AddPendingResourcesResult": {
           "type": "object",
           "properties": {
-            "Result": {
-              "$ref": "#/definitions/NotifyWatchResult"
+            "ErrorResult": {
+              "$ref": "#/definitions/ErrorResult"
+            },
+            "pending-ids": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              }
             }
-          }
-        }
-      },
-      "definitions": {
-        "Entities": {
+          },
+          "additionalProperties": false,
+          "required": [
+            "ErrorResult",
+            "pending-ids"
+          ]
+        },
+        "CharmResource": {
           "type": "object",
           "properties": {
-            "entities": {
+            "description": {
+              "type": "string"
+            },
+            "fingerprint": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/Entity"
+                "type": "integer"
               }
+            },
+            "name": {
+              "type": "string"
+            },
+            "origin": {
+              "type": "string"
+            },
+            "path": {
+              "type": "string"
+            },
+            "revision": {
+              "type": "integer"
+            },
+            "size": {
+              "type": "integer"
+            },
+            "type": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "entities"
+            "name",
+            "type",
+            "path",
+            "origin",
+            "revision",
+            "fingerprint",
+            "size"
           ]
         },
         "Entity": {
           },
           "additionalProperties": false
         },
-        "ErrorResults": {
+        "ListResourcesArgs": {
           "type": "object",
           "properties": {
-            "results": {
+            "entities": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/ErrorResult"
+                "$ref": "#/definitions/Entity"
               }
             }
           },
           "additionalProperties": false,
           "required": [
-            "results"
+            "entities"
           ]
         },
         "Macaroon": {
           "type": "object",
           "additionalProperties": false
         },
-        "NotifyWatchResult": {
+        "Resource": {
           "type": "object",
           "properties": {
-            "NotifyWatcherId": {
+            "CharmResource": {
+              "$ref": "#/definitions/CharmResource"
+            },
+            "application": {
               "type": "string"
             },
-            "error": {
-              "$ref": "#/definitions/Error"
+            "id": {
+              "type": "string"
+            },
+            "pending-id": {
+              "type": "string"
+            },
+            "timestamp": {
+              "type": "string",
+              "format": "date-time"
+            },
+            "username": {
+              "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "NotifyWatcherId"
+            "CharmResource",
+            "id",
+            "pending-id",
+            "application",
+            "username",
+            "timestamp"
           ]
         },
-        "RebootActionResult": {
+        "ResourcesResult": {
           "type": "object",
           "properties": {
-            "error": {
-              "$ref": "#/definitions/Error"
+            "ErrorResult": {
+              "$ref": "#/definitions/ErrorResult"
             },
-            "result": {
-              "type": "string"
+            "charm-store-resources": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/CharmResource"
+              }
+            },
+            "resources": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Resource"
+              }
+            },
+            "unit-resources": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/UnitResources"
+              }
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "ErrorResult",
+            "resources",
+            "charm-store-resources",
+            "unit-resources"
+          ]
         },
-        "RebootActionResults": {
+        "ResourcesResults": {
           "type": "object",
           "properties": {
             "results": {
               "type": "array",
               "items": {
-                "$ref": "#/definitions/RebootActionResult"
+                "$ref": "#/definitions/ResourcesResult"
               }
             }
           },
-          "additionalProperties": false
+          "additionalProperties": false,
+          "required": [
+            "results"
+          ]
+        },
+        "UnitResources": {
+          "type": "object",
+          "properties": {
+            "Entity": {
+              "$ref": "#/definitions/Entity"
+            },
+            "download-progress": {
+              "type": "object",
+              "patternProperties": {
+                ".*": {
+                  "type": "integer"
+                }
+              }
+            },
+            "resources": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Resource"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "Entity",
+            "resources",
+            "download-progress"
+          ]
         }
       }
     }
   },
   {
-    "Name": "RelationUnitsWatcher",
+    "Name": "ResourcesHookContext",
     "Version": 1,
     "Schema": {
       "type": "object",
       "properties": {
-        "Next": {
+        "GetResourceInfo": {
           "type": "object",
           "properties": {
+            "Params": {
+              "$ref": "#/definitions/ListResourcesArgs"
+            },
             "Result": {
-              "$ref": "#/definitions/RelationUnitsWatchResult"
+              "$ref": "#/definitions/ResourcesResult"
             }
           }
-        },
-        "Stop": {
-          "type": "object"
         }
       },
       "definitions": {
+        "CharmResource": {
+          "type": "object",
+          "properties": {
+            "description": {
+              "type": "string"
+            },
+            "fingerprint": {
+              "type": "array",
+              "items": {
+                "type": "integer"
+              }
+            },
+            "name": {
+              "type": "string"
+            },
+            "origin": {
+              "type": "string"
+            },
+            "path": {
+              "type": "string"
+            },
+            "revision": {
+              "type": "integer"
+            },
+            "size": {
+              "type": "integer"
+            },
+            "type": {
+              "type": "string"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "name",
+            "type",
+            "path",
+            "origin",
+            "revision",
+            "fingerprint",
+            "size"
+          ]
+        },
         "Error": {
           "type": "object",
           "properties": {
           },
           "additionalProperties": false
         },
-        "Macaroon": {
+        "ErrorResult": {
           "type": "object",
+          "properties": {
+            "error": {
+              "$ref": "#/definitions/Error"
+            }
+          },
           "additionalProperties": false
         },
-        "RelationUnitsChange": {
+        "ListResourcesArgs": {
           "type": "object",
           "properties": {
-            "changed": {
-              "type": "object",
-              "patternProperties": {
-                ".*": {
-                  "$ref": "#/definitions/UnitSettings"
-                }
-              }
-            },
-            "departed": {
+            "resource-names": {
               "type": "array",
               "items": {
                 "type": "string"
           },
           "additionalProperties": false,
           "required": [
-            "changed"
+            "resource-names"
           ]
         },
-        "RelationUnitsWatchResult": {
+        "Macaroon": {
+          "type": "object",
+          "additionalProperties": false
+        },
+        "Resource": {
           "type": "object",
           "properties": {
-            "changes": {
-              "$ref": "#/definitions/RelationUnitsChange"
+            "CharmResource": {
+              "$ref": "#/definitions/CharmResource"
             },
-            "error": {
-              "$ref": "#/definitions/Error"
+            "application": {
+              "type": "string"
             },
-            "watcher-id": {
+            "id": {
+              "type": "string"
+            },
+            "pending-id": {
+              "type": "string"
+            },
+            "timestamp": {
+              "type": "string",
+              "format": "date-time"
+            },
+            "username": {
               "type": "string"
             }
           },
           "additionalProperties": false,
           "required": [
-            "watcher-id",
-            "changes"
+            "CharmResource",
+            "id",
+            "pending-id",
+            "application",
+            "username",
+            "timestamp"
           ]
         },
-        "UnitSettings": {
+        "ResourceResult": {
           "type": "object",
           "properties": {
-            "version": {
-              "type": "integer"
+            "ErrorResult": {
+              "$ref": "#/definitions/ErrorResult"
+            },
+            "resource": {
+              "$ref": "#/definitions/Resource"
             }
           },
           "additionalProperties": false,
           "required": [
-            "version"
+            "ErrorResult",
+            "resource"
+          ]
+        },
+        "ResourcesResult": {
+          "type": "object",
+          "properties": {
+            "ErrorResult": {
+              "$ref": "#/definitions/ErrorResult"
+            },
+            "resources": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/ResourceResult"
+              }
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "ErrorResult",
+            "resources"
           ]
         }
       }
             "provider-vlan-id": {
               "type": "string"
             },
+            "routes": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/NetworkRoute"
+              }
+            },
             "vlan-tag": {
               "type": "integer"
             }
             "disabled"
           ]
         },
+        "NetworkRoute": {
+          "type": "object",
+          "properties": {
+            "destination-cidr": {
+              "type": "string"
+            },
+            "gateway-ip": {
+              "type": "string"
+            },
+            "metric": {
+              "type": "integer"
+            }
+          },
+          "additionalProperties": false,
+          "required": [
+            "destination-cidr",
+            "gateway-ip",
+            "metric"
+          ]
+        },
         "NotifyWatchResult": {
           "type": "object",
           "properties": {